
Wyrażeń XPath można używać w procesach BPEL w ramach działań przypisywania (assign) lub warunków i wyrażeń.
Języka XPath można używać do odwoływania się do części zmiennej BPEL za pomocą instrukcji źródła lub instrukcji celu w działaniu assign. Przywoływana część instrukcji źródła jest kopiowana i ustawiana na wskazaną część instrukcji celu. Jeśli część instrukcji celu nie została jeszcze zainicjowana, zostanie ona utworzona automatycznie. To także oznacza, że w razie potrzeby zostaną utworzone wszystkie pośrednie części obiektu biznesowego. Aby przypisać łańcuch do wyrażenia XPath /deliveraddress/street, jak to pokazano na poniższym zrzucie ekranu, nie musi istnieć właściwość deliveraddress o typie Address. Nie trzeba nawet wcześniej inicjować zmiennej BPEL customer - zostanie ona utworzona automatycznie przez działanie assign.

Wyrażenie XPath może odwoływać się do prostych typów danych, takich jak łańcuchy i liczby całkowite, a także do złożonych typów danych. Podczas używania edytora procesów BPEL nie jest wykonywane sprawdzanie, czy przypisanie jest poprawne, jeśli chodzi o typ danych części źródła i części celu. Jeśli zostanie przypisana część zmiennej BPEL o prostym typie danych, produkt IBM® Process Server w razie potrzeby przekształci ją do odpowiedniego docelowego prostego typu danych. Na przykład można przypisać wartość będącą liczbą całkowitą do części zmiennej o typie łańcucha. Niemniej jednak w przypadku pracy z obiektami biznesowymi dane nie są przekształcane. Należy zadbać o to, aby przypisywać wyłącznie części, które można przekształcać (typy proste), lub części, które mają identyczny typ (typy proste i obiekty biznesowe).
Chociaż można używać dowolnych funkcji XPath (patrz sekcja Procesy BPEL: predefiniowane funkcje rozszerzenia XPath) dla części źródła działania assign, obsługa ich użycia dla części celu jest ograniczona do osi child:: i attribute::. Więcej informacji na ten temat zawiera nota techniczna http://www-1.ibm.com/support/docview.wss?&uid=swg21222985.
Należy pamiętać o zaadresowaniu części celu przez instrukcję XPath bez funkcji (na przykład /customers/address[1]/name). Jeśli za pomocą działań assign zostanie wypełniona właściwość tablicy, należy pamiętać o sekwencyjnym uzyskiwaniu dostępu do nich dla części celu. Należy więc najpierw wypełnić pozycję /customers/address[1]/name przed wypełnieniem pozycji /customers/address[2]/name (indeksy tablicy w wyrażeniach XPath rozpoczynają się od indeksu 1). W przeciwnym razie pojawi się wyjątek podczas wykonywania w produkcie IBM Process Server, który zostanie zgłoszony jako niepowodzenie standardowe bpws:mismatchedAssignmentFailure. Ponadto należy zauważyć, że w instrukcji celu nie są dozwolone funkcje równorzędne, jeśli węzeł, do którego istnieje odwołanie, nie został wcześniej zainicjowany.
W wielu miejscach edytora procesów BPEL można także użyć warunków i wyrażeń w języku XPath. Są to między innymi: warunki w połączeniach w działaniach parallel, zachowanie łączenia w dowolnych działaniach w ramach działań parallel, warunki w działaniach choice i działania pętli while, wyrażenia w działaniu wait i wyrażenie limitu czasu w działaniu receive choice. Ponadto działanie forEach może użyć wyrażeń XPath dla wyrażeń początkowych i końcowych, a także warunku XPath dla kryterium wyjściowego.
W działaniach assign wyrażeń XPath używa się do odwoływania się do części źródła i celu, które mają być używane dla przypisania. Niemniej jednak warunki i wyrażenia muszą mieć konkretną wartość zwracaną. Z tego względu należy zadbać o to, aby wyrażenie lub warunek XPath wskazywał część w zmiennej BPEL, która ma odpowiedni typ (na przykład boolowski dla warunków). W przeciwnym razie do zbudowania takiego typu należy użyć wyrażenia XPath (na przykład bpws:getVariableData("customer", "deliveraddress/zip")="12345").