Kubajs' Ne(s)t

kubajs.net

Chyba deploymentu z NWDS

Návod je určen pro ty, kdo používají NetWeaver Developer Studio k tomu, aby deployovali své adapter moduly na PI servery. Na problém jsem narazil u verze NWDS 7.1 spouštěné na operačním systému Windows 7, ale nevylučuji, že může být i u jiných kombinací.

Problém spočívá v tom, že nelze provést deploy na SAP Server, i když je tento server definován v Preferences:

Deploy nelze provést, protože při startu NWDS selže načtení SAP Server Adapters pluginu – to se ale nikde nedozvíš, žádná chyba se nezobrazí. To, že se nepodařilo načíst zmíněný plugin, zjistíš například tak, že si zobrazíš okno Servers:

a v zobrazeném okně uvidíš definované servery (budou nejspíš bez indikátorů State i Status – ale to je až následek).

Poté klepneš pravou myší a z nabídky vybereš New – Server. Pokud se zobrazí okno, které neobsahuje složku se SAP Servery jako na následujícím obrázku, pak se nepodařilo načíst plugin com.sap.ide.ext.libs.perf.

Správně bys měl vidět toto: a při přidávání nového serveru toto:

Řešení tohoto problému je ale jednoduché, jedná se totiž o nekompatibilitu s OS Windows 7!

Vyhledej inicializační soubor SapNetweaverDeveloperStudio.ini, který při standardní instalaci bude v C:\Program Files\SAP\IDE\CE\eclipse a přidej do něj tyto 3 nové řádky:

-clean
<tady je původní obsah>
.
.
.
<konec původního obsahu>
-Dos.name=Windows XP
-Dos.version=5.1

Po té restartuj NWDS a bude vše jinak. :)

Následně můžeš ten první řádek s -clean vymazat, aby NWDS pokaždé nenabíhalo tak dlouho ( clean stačí provést jednou).

Děkuji Pavlovi K. za poskytnutí pracně získaných zkušeností

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à.