Zuletzt bearbeitet vor 8 Jahren
von Meikel Bisping

Gxstage - SuperX intern

Kostenstellen sc01
Kostenarten sc05_cskb
Projekte sc03
PSP sc04
Innenaufträge sc02
Einnahme/Ausgabearten sf06
Geldgeber/Fonds sf03



WICHTIG
Wenn man eine neue Gxstage_modulversion erzeugt muss man Folgendes machen in gxstage/conf:
sx_transform.x -IN:gxstage.xml -XSL:gxstage_webservice_transfer.xsl -OUT:$GXSTAGE_PFAD/datentabellen/gxstage_webservice_transfer.sql -method:text
Hintergrund ist hier, dass nach Ladetabellen geschaut wird und diese in substring-before(_neu)reingeschrieben
---->               ACHTUNG: bep2 enthält xblnr,anln1,zuonr aber bep2_neu nicht!! -> müsste wegen inserts eigentlich egal sein, aber besser vorher testen.!!

für gxstage_kenn_tabellen

sx_transform.x -IN:gxstage.xml -XSL:gxstage_webservice_transfer_kenn.xsl -OUT:$GXSTAGE_PFAD/datentabellen/gxstage_webservice_transfer_kenn.sql -method:text


sx_webservice.x


conf/soap_to_csv.xsl muss auch bei ISO-Versionen der Pakete Encoding=UTF8 haben und den Eintrag



Interne Implementierung:
Der WebserviceClient schaunt in der Datenbank nach Datum systeminfo 170 (=gxstage-Modul) des letzten Updates, falls nichts gefunden wird 1.1.2000 genommen.


Für zu löschende Datensätze werden vom webserviceClient Einträge direkt in die Datenbank gemacht in die Tabellegxstage_delete_objects.
Bei der Transformation wird das Script
gxstage_delete_by_webservice.sql
aufgerufen, das die zu löschendenObjekte entfernt


für neue objekte wird zunächst eine XML-Datei angelegt, die in temp-Verzeichnis gespeichert wird, Parameter -nodelete für sx_webservice.x sorgt dafür, dass diese zu testzwecken nicht gelöscht wird - debugging möglich

Dann wird per soap_to_csv.xsl aus der xml-datei eine csv datei erzeugt, diese wird per loadtable beim sx_webservice_all.x geladen, bei Fehlern wird in gxstage_unload.err geloggt


Beim gxstage_update.x wird nach fehlern in gxstage_unload.err geschaut, wenn keine vorhanden sind, wird im Transschritt gxstage_webservice_transfer.sql aufgerufen. In den Zieltabellen werden per primarykey zunächst geänderte,vorhandene Datensätze gelöscht, dann alles übernommen, einschließlich neue Datensätze
Bei keinem Webservice-Betrieb sind die _neu-Tabellen leer.


Neue SuperX-Webservice-Schnittstellenbeschreibung anlegen

Object Klasse setzen statt PROJ

<?xml version="1.0"  encoding="UTF-8" ?>
<webservice object_class="PROJ">
<changesurl><![CDATA[WS_HOST/sap/xi/engine?type=entry&version=3.0&Sender.Service=WsHAWObjectGetChangesSyn&Interface=http%3A%2F%2Fnsi-cc.bwl.de%2Fhaw%2Fallg%5EMiObjectGetChangesSynOut]]>
</changesurl>
<!-- XXOBJECT_CLASS wird automatisch ersetzt durch attribut object_class-->
<changessoap><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:sap-com:document:sap:rfc:functions">
   <soapenv:Header/>
   <soapenv:Body>
<urn:ZVMWSALLG_GET_CHANGES>
<OBJECT_CLAS>XXOBJECT_CLASSXX</OBJECT_CLAS>
<CHANGEHEAD></CHANGEHEAD>
<CHANGEDATE_FROM>XXSTARTDATEXX</CHANGEDATE_FROM>
<CHANGEDATE_TO></CHANGEDATE_TO>
<WITH_DETAILS></WITH_DETAILS>
</urn:ZVMWSALLG_GET_CHANGES>
</soapenv:Body>
</soapenv:Envelope>
]]>
</changessoap>
 <detailurl><![CDATA[[WS_HOST/sap/xi/engine?type=entry&version=3.0&Sender.Service=WsHAWCosttypeGetDetailSyn&Interface=http%3A%2F%2Fnsi-cc.bwl.de%2Fhaw%2Fco%5EMiCosttypeGetDetailSynOut https://kpi-nsi.landbw.de/sap/xi/engine?type=entry&version=3.0&Sender.Service=WsHAWCosttypeGetDetailSyn&Interface=http%3A%2F%2Fnsi-cc.bwl.de%2Fhaw%2Fco%5EMiCosttypeGetDetailSynOut] KOMMENTAR 1]]>>
</detailurl>
<detailsoap><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:sap-com:document:sap:rfc:functions"> 
   <soapenv:Header/> 
   <soapenv:Body> 
       <urn:ZVMWSCO_GET_KSTAR> 
     <IM_KOKRS>IDPART1</IM_KOKRS> 
     <IM_KSTAR>IDPART2</IM_KSTAR>
         <RETURN/> 
      </urn:ZVMWSCO_GET_KSTAR> KOMMENTAR 2 
   </soapenv:Body> 
 </soapenv:Envelope>]]>
</detailsoap>
<replacenode from="ZVMWSCO_GET_KSTAR.Response Kommentar 3" /> <!--to="response"--> 
</webservice>

Kommentar 1:

Suche nach <soap:address location=" in der WSDL-Detail-Datei.



Kommentar 2:

aus WSDL-Datei erstes Element <xsd:element name

z.B. auf urn:ZVMWSCO_GET_WBS Ändern, Parameter stehen auch in der Exceldatei

<urn:ZVMWSCO_GET_WBS>

<IM_PSPID>XXOBJECTIDXX</IM_PSPID>

<RETURN/>

</urn:ZVMWSCO_GET_WBS>


IDPART1 sind die ersten vier Zeichen, IDPART2 ab Position 4, IDPART3 ab Position 8, XXOBJECTIDXX ist die ganze objectid

XXHSNRXX die Hochschulnummer = Finanzierungskreis oder Kostenartenkreis


Kommentar 3:

hier den Namen des zurückgelieferten Knotens eintragen, wird durch response ersetzt





-

für Lokales Testen des  Webservice Clients bzw. bei Proxy_konfiguration  Variable WS_OPTS in SQL_ENV setzen

export  WS_OPTS="-DsocksProxyHost=localhost -DsocksProxyPort=9998 -DWS_HOST=https://kpi-nsi.landbw.de"




Superx benutzt derzeit folgende Webservices

Stammdaten:
https://kpi-nsi.landbw.de:443/sap/xi/engine?type=entry&version=3.0&Sender.Service=WsHAWObjectGetChangesSyn&Interface=http%3A%2F%2Fnsi-cc.bwl.de%2Fhaw%2Fallg%5EMiObjectGetChangesSynOut

https://kPI-nsi.landbw.de/sap/xi/engine?type=entry&version=3.0&Sender.Service=WsHAWFiposGetDetailSyn&Interface=http%3A%2F%2Fnsi-cc.bwl.de%2Fhaw%2Fpsm%5EMiFiposGetDetailSynOut
https://kPI-nsi.landbw.de/sap/xi/engine?type=entry&version=3.0&Sender.Service=WsHAWFondsGetDetailSyn&Interface=http%3A%2F%2Fnsi-cc.bwl.de%2Fhaw%2Fpsm%5EMiFondsGetDetailSynOut
https://kpi-nsi.landbw.de/sap/xi/engine?type=entry&version=3.0&Sender.Service=WsHAWCcGetDetailSyn&Interface=http%3A%2F%2Fnsi-cc.bwl.de%2Fhaw%2Fco%5EMiCcGetDetailSynOut
https://kpi-nsi.landbw.de/sap/xi/engine?type=entry&version=3.0&Sender.Service=WsHAWCosttypeGetDetailSyn&Interface=http%3A%2F%2Fnsi-cc.bwl.de%2Fhaw%2Fco%5EMiCosttypeGetDetailSynOut
https://kPI-nsi.landbw.de/sap/xi/engine?type=entry&version=3.0&Sender.Service=WsHAWWbsGetDetailSyn&Interface=http%3A%2F%2Fnsi-cc.bwl.de%2Fhaw%2Fco%5EMiWbsGetDetailSynOut
https://kPI-nsi.landbw.de/sap/xi/engine?type=entry&version=3.0&Sender.Service=WsHAWWbsitemGetDetailSyn&Interface=http%3A%2F%2Fnsi-cc.bwl.de%2Fhaw%2Fco%5EMiWbsitemGetDetailSynOut
https://kPI-nsi.landbw.de/sap/xi/engine?type=entry&version=3.0&Sender.Service=WsHAWInternalOrderGetDetailSyn&Interface=http%3A%2F%2Fnsi-cc.bwl.de%2Fhaw%2Fco%5EMiInternalOrderGetDetailSynOut
https://kPI-nsi.landbw.de/sap/xi/engine?type=entry&version=3.0&Sender.Service=WsHAWSponsoredClassGetDetailSyn&Interface=http%3A%2F%2Fnsi-cc.bwl.de%2Fhaw%2Fpsm%5EMiSponsoredClassGetDetailSynOut


Kreditoren: MiLfa1GetSynOut.wsdl Debitoren: MiKna1GetSynOut.wsdl



Bewegungsdaten
https://kpi-nsi.landbw.de/sap/xi/engine?type=entry&version=3.0&Sender.Service=WsHAWFmifiitGetSyn&Interface=http%3A%2F%2Fnsi-cc.bwl.de%2Fhaw%2Fpsm%5EMiFmifiitGetSynOut
https://kPI-nsi.landbw.de/sap/xi/engine?type=entry&version=3.0&Sender.Service=WsHAWFmbdpGetSyn&Interface=http%3A%2F%2Fnsi-cc.bwl.de%2Fhaw%2Fpsm%5EMiFmbdpGetSynOut
https://kPI-nsi.landbw.de/sap/xi/engine?type=entry&version=3.0&Sender.Service=WsHAWFmioiGetSyn&Interface=http%3A%2F%2Fnsi-cc.bwl.de%2Fhaw%2Fpsm%5EMiFmioiGetSynOut

Summendaten:
https://kPI-nsi.landbw.de/sap/xi/engine?type=entry&version=3.0&Sender.Service=WsHAWFmbdtGetByFistlSyn&Interface=http%3A%2F%2Fnsi-cc.bwl.de%2Fhaw%2Fpsm%5EMiFmbdtGetByFistlSynOut
https://kPI-nsi.landbw.de/sap/xi/engine?type=entry&version=3.0&Sender.Service=WsHAWFmitGetByFistlSyn&Interface=http%3A%2F%2Fnsi-cc.bwl.de%2Fhaw%2Fpsm%5EMiFmitGetByFistlSynOut