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 Rolf

Ich 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 Rolf

Sehe 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

Comments

0 comments

Please sign in to leave a comment.

Didn't find what you were looking for?

New post