UDF mit Serienbrief auf GP aktualisieren
Rolf Walker
Guten Tag!Wir bereiten bei uns einen Serienbrief auf, welche Daten beinhaltet, die auf dem Geschäftspartner hinterlegt sind.
Nehmen wir an, das System bereitet 200 Seiten(Briefe) auf. Auf jeder Seite wir der GP Code des Kunden angedruckt. Die ganze Seite wird mittels Datenband generiert.
Nun bin ich hingegangen und habe auf dem Datenband folgendes 'Generate Script' hinterlegt:
If Not Engine.IsDoublePass Then
If GetData("LD.Par.PrintMode") = "N" And GetData("LD.Par.Preview") = "N" Then
Try
Dim Comp As SAPbobsCOM.Company = SwissAddonFramework.B1Connector.GetB1Connector().Company
Dim BuPa As SAPBobsCOM.BusinessPartners = comp.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oBusinessPartners)
BuPa.CardCode = (DB_Brief("customer"))
BuPa.UserFields.Fields.Item("U_WV_Sent").Value = Now()
Dim i As Integer = BuPa.Update()
If i <> 0 Then
SwissAddonFramework.UI.Dialogs.MessageBox.Show(Comp.GetLastErrorDescription(),"OKAY")
End If
Catch Ex As Exception
SwissAddonFramework.UI.Dialogs.MessageBox.Show(Ex.Message,"OKAY")
End Try
End If
End If
Wenn ich nun das Layout aufbereite und ausdrucke, dann kommen immer wieder fehler folgender Art (siehe Screenshot).
Schlussendlich werden von den 200 GPs ledlich etwa 150 upgedated.
Was läuft hier falsch?
Danke für Hinweise!
Schönes Wochenende!
Gruss,
Rolf
Attachment
[url=http://www.coresystems.ch/wp-content/../wp-content/forum-image-uploads/rowasi/DI_Update.PNG]DI_Update.PNG[/url]
Philipp Knecht
Hoi RolfIch glaube du hast die GetByKey Methode vergessen.
Bevor du ein Objekt nämlich updatest must du es mit:
BuPa.GetByKey(DB_Brief("customer"))
BuPa.UserFields.Fields.Item("U_WV_Sent").Value = Now()
...
holen
hth
Rolf Walker
Guten Morgen Philipp!Danke für Deine Antwort!
Habe die Änderungen gemäss Vorschlag gemacht. Hat leider nichts gebracht. Jetzt bringt er bei einigen GPs die Meldung: "Keine Daten vorhanden". Es sind die gleichen GPs die auch einen Fehler verursacht haben mit der 1. Version vom Script! Von den insgesamt ca. 200 aufbereiteten GPs werden nur ca. 150 aktualisiert.
Was könnte noch ein Grund sein?
Habe den Code im Generate Script der Page eingebaut! Müsste der allenfalls woanders hin?
Hier nochmals der Code. Evtl. fällt jemandem sonst noch was auf. Das UDF ist auf Stammdaten -> GP -> GP angelegt!
If Not Engine.IsDoublePass Then
If GetData("LD.Par.PrintMode") = "N" And GetData("LD.Par.Preview") = "N" Then
Try
Dim Comp As SAPbobsCOM.Company = SwissAddonFramework.B1Connector.GetB1Connector().Company
Dim BuPa As SAPBobsCOM.BusinessPartners = comp.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oBusinessPartners)
BuPa.GetByKey(GetData("B1_Data.KundenequipmentStatusU.customer"))
BuPa.UserFields.Fields.Item("U_WV_Sent").Value = Now()
Dim i As Integer = BuPa.Update()
If i <> 0 Then
SwissAddonFramework.UI.Dialogs.MessageBox.Show(Comp.GetLastErrorDescription(),"OKAY")
End If
Catch Ex As Exception
SwissAddonFramework.UI.Dialogs.MessageBox.Show(Ex.Message,"OKAY")
End Try
End If
End If
Danke für die Hilfe!
Gruss,
Rolf
Philipp Knecht
Hallo RolfSehe auch nicht was jetzt noch falsch sein könnte.
Ev. ist es ein SAP B1 Problem.
Kannst das Datum bei einem solchen problematischen GP denn von Hand (regulär via B1) eintragen?
hth
Rolf Walker
hallo Philipp!Du hast richtig gelegen, mit deiner Vemutung, dass es ein SAP B1 Problem sein könnte!
Habe am W-E von PL44 nach PL47 geupgraded und siehe da - das Problem ist verschwunden!
Vielen Dank für deine Hilfestellung!
Gruss,
Rolf
0
Please sign in to leave a comment.
Comments
0 comments