Kubajs' Ne(s)t

kubajs.net

Custom parametry v JMS komunikaci

V JMS komunikaci je možné kromě obsahu zprávy přenášet dodatečné atributy (parametry) v JMS hlavičce, které může cílový systém použít k dalšímu zpracování.

Jako příklad jsou zobrazeny paramety jak vypadají po přijetí systémem Tibco:

SAP PI dokáže parametry přidat pomocí dodatečné konfigurace v komunikačním kanálu příslušného JMS adaptéru. Protože je to malinko krkolomnější, zde je příklad. Ukázka platí pro nastavení konstant – v případě dynamických parametrů by se postupovalo standardním způsobem nastavení dynamické konfigurace adaptéru v mapování.

Postup je tedy zhruba následující:

Nejprve v dynamické konfiguraci nastavíme hodnoty parametrů s originálními názvy DCJMSMessageProperty0DCJMSMessageProperty9. Je tedy možné přiřadit maximálně deset custom parametrů.

Stačí-li nastavit hodnoty parametrů konstantou, je k tomu možné použít modul adaptéru s názvem AF_Modules/DynamicConfigurationBean (jeho schopnosti jsou široké a konfigurace poměrně složitá – více v dokumentaci ) a parametry nastavit v konfiguraci tohoto modulu. Dynamická konfigurace se pak vytváří pomocí parametrů modulu key.N, jeho hodnota pak v parametru value.N (kde N je číslo od 0 výše). Chceme-li tedy nastavit parametr dynamické konfigurace s názvem DCJMSMessageProperty0 na hodnotu ABC, je potřeba definovat dva parametry modulu:

key.0 = insert http://sap.com/xi/XI/System/JMS DCJMSMessageProperty0
value.0 = ABC

Hodnota key.0 obsahuje mezerami oddělený příkaz pro vložení nového parametru (insert), namespace dynamické konfigurace JMS (http://sap.com/xi/XI/System/JMS) a název dynamického parametru DCJMSMessageProperty0.

Názvy dynamických parametrů jednotlivých druhů adaptérů se mimochodem dají někdy najít v dokumentaci, ale vždy v metadatech adaptéru (nejlépe přímo v jeho XML zobrazení) v ESR komponentě SAP BASIS příslušné verze.

Tento interní parametr je poté nutné převést do skutečného parametru JMS. To se provede deklarací parametrů po zaškrtnutí volby Specify Additional JMS Message Properties v komunikačním kanálu JMS. Do konfigurace se potom vypíše název a typ parametru. Jejich pořadí v tabulce je rozhodující – v tomto pořadí jim totiž budou předány hodnoty z interních parametrů DCJMSMessageProperty0.

Pokud tedy na první řádce definuji JMS parametr s názvem FILE_NAME a typem string, bude mu přiřazena hodnota parametru DCJMSMessageProperty0.

Ve výsledném přenosu se tedy na straně middleware TIBCO objeví u zprávy přenesené s touto konfigurací message property FILE_NAME = ABC. Volià.