Anwendung / Praxis

Speichern von einzelnen Werten in einem Dokumentpool

Hier wird aufgezeigt wie man in einem Dokumentpool auf den jeweiligen Einträgen (SalDocPoolItem) in den freien Feldern unterschiedliche Werte speichern kann.
(Über IBOS resp. die Funktion "Freie Pool-Felder nachtragen" ist das nicht möglich.

Beispiel

/headerreport
# Speichern von einzelnen freien Feldern in einem Dokumentpool
#
# ------------------------------------------------------------------------
«nm1Pool-Nummer?(15)»
# Mit der eingegebenen Dokument-Pool-Nr werden die enthaltenen Pool-Positionen ausgelesen
«/getPoolItem»
Anzahl gefundene Positionen: «XRES(getPoolItemRes:row)»
# # Ausgeben der Pool-Positionen
«/printPos»
# Check der einzelnen Dokumente
«/CheckPos»
# Positionen nochmals Ausgeben
------------------------------------------------------------------------
Positionen nach dem Mutieren
«/getPoolItem»
«/printPos»
------------------------------------------------------------------------
End Script
/

/getPoolItem
# Erzeugen und Ausführen des Service
«XSER(getPoolItem:GetBo)»
«XSER(getPoolItem:addArg=SalDocPoolItem)»
«XSER(getPoolItem:addArg=«MEM(1)»)»
«XSER(getPoolItem:addArg=ne)»
«XSER(getPoolItem:addArg=1)»
«XSER(getPoolItem:addArg=0)»
«XSER(getPoolItem:addArg=)»
«XSER(getPoolItem:addArg=SalDocPoolItem.SalDocPoolNo=«MEM(1)»)»
«XSER(getPoolItem:addArg=BoId,Free1,Free2,Free4,Free7,free8)»
«XSER(getPoolItem:execute>getPoolItemRes)»
/

/CheckPos
# Loop über die gefundenen Positionen
«nNO(1,NULL)»
«REPEAT»
«nNO(1)»
# Dokumenttyp prüfen und in den freien Feldern einen Wert speichern
«zXRES(getPoolItemRes:SalDocPoolItem.SalProcLevelCd,«NO(1,0)»)=1\N»«/saveOF»
«zXRES(getPoolItemRes:SalDocPoolItem.SalProcLevelCd,«NO(1,0)»)=2\N»«/saveAB»
«zXRES(getPoolItemRes:SalDocPoolItem.SalProcLevelCd,«NO(1,0)»)=3\N»«/saveLS»
«z(«NO(1,0)»<«XRES(getPoolItemRes:rows)»)\N»«LOOP»
/

/printPos
# Loop über die gefundenen Positionen
«nNO(1,NULL)»
«REPEAT»
«nNO(1)»
«sXRES(getPoolItemRes:SalDocPoolItem.Free1,«NO(1,0)»)=1»[JA] / «-»
«XRES(getPoolItemRes:SalDocPoolItem.Free2,«NO(1,0)»)» / «-»
«XRES(getPoolItemRes:SalDocPoolItem.Free4,«NO(1,0)»)» / «-»
«XRES(getPoolItemRes:SalDocPoolItem.Free7,«NO(1,0)»)» / «-»
«XRES(getPoolItemRes:SalDocPoolItem.Free8,«NO(1,0)»)»
«nz(«NO(1,0)»>«XRES(getPoolItemRes:rows)»)\N»«LOOP»
/

/saveOF
# Erstellen des SaveBo Service mit der Zuweisung der neuen Bezeichnung
«XSER(setPoolItem:SaveBo)»
«XSER(setPoolItem:addArg=SalDocPoolItem)»
«XSER(setPoolItem:addArg=«XRES(getPoolItemRes:SalDocPoolItem.BoId,«NO(1,0)»)»)»
«XSER(setPoolItem:addArg=e)»
«XSER(setPoolItem:addArg=)»
«XSER(setPoolItem:addArg=)»
«XSER(setPoolItem:addArg=)»
«XSER(setPoolItem:addArg=0)»
«XSER(setPoolItem:addArg=1)»
«XSER(setPoolItem:addArg=)»
«XSER(setPoolItem:addArg=)»
«XSER(setPoolItem:addArg=SalDocPoolItem.Free8=@Nachfassen)»
# Ausführen des SaveBo Service
«nXSER(setPoolItem:execute>setPoolItemRes)»
# Prüfen des SaveBoStateCd
«z~XRES(setPoolItemRes:SaveBoStateCd)=0\N»*> Fehler: «XRES(setPoolItemRes:SaveBoInfo)»
/

/saveAB
# Erstellen des SaveBo Service mit der Zuweisung der neuen Bezeichnung
«XSER(setPoolItem:SaveBo)»
«XSER(setPoolItem:addArg=SalDocPoolItem)»
«XSER(setPoolItem:addArg=«XRES(getPoolItemRes:SalDocPoolItem.BoId,«NO(1,0)»)»)»
«XSER(setPoolItem:addArg=e)»
«XSER(setPoolItem:addArg=)»
«XSER(setPoolItem:addArg=)»
«XSER(setPoolItem:addArg=)»
«XSER(setPoolItem:addArg=0)»
«XSER(setPoolItem:addArg=1)»
«XSER(setPoolItem:addArg=)»
«XSER(setPoolItem:addArg=)»
«XSER(setPoolItem:addArg=SalDocPoolItem.Free2=@F)»
«XSER(setPoolItem:addArg=SalDocPoolItem.Free7=@4711)»
«XSER(setPoolItem:addArg=SalDocPoolItem.Free8=@Abgeschlossen)»
# Ausführen des SaveBo Service
«nXSER(setPoolItem:execute>setPoolItemRes)»
# Prüfen des SaveBoStateCd
«z~XRES(setPoolItemRes:SaveBoStateCd)=0\N»*>Fehler: «XRES(setPoolItemRes:SaveBoInfo)»
/

/saveLS
# Erstellen des SaveBo Service mit der Zuweisung der neuen Bezeichnung
«XSER(setPoolItem:SaveBo)»
«XSER(setPoolItem:addArg=SalDocPoolItem)»
«XSER(setPoolItem:addArg=«XRES(getPoolItemRes:SalDocPoolItem.BoId,«NO(1,0)»)»)»
«XSER(setPoolItem:addArg=e)»
«XSER(setPoolItem:addArg=)»
«XSER(setPoolItem:addArg=)»
«XSER(setPoolItem:addArg=)»
«XSER(setPoolItem:addArg=0)»
«XSER(setPoolItem:addArg=1)»
«XSER(setPoolItem:addArg=)»
«XSER(setPoolItem:addArg=)»
«XSER(setPoolItem:addArg=SalDocPoolItem.Free1=@1)»
«XSER(setPoolItem:addArg=SalDocPoolItem.Free2=@Z)»
«XSER(setPoolItem:addArg=SalDocPoolItem.Free4=@LS geliefert)»
# Ausführen des SaveBo Service
«nXSER(setPoolItem:execute>setPoolItemRes)»
# Prüfen des SaveBoStateCd
«z~XRES(setPoolItemRes:SaveBoStateCd)=0\N»*>Fehler: «XRES(setPoolItemRes:SaveBoInfo)»
/
Einträge im WS 52000 vor und nach Ablauf des Scripts.