update der Geschäftspartner funktioniert nicht
Markus Rewak
Hi,bei nachfolgendem Code hängt sich coresuite ohne Fehlermeldung auf.
Dim DR As System.Data.SqlClient.SqlDataReader = Nothing
Dim BP As SAPbobsCOM.BusinessPartners
Dim sSql As String
sSql="select cardcode FROM OCRD WHERE QryGroup13 ='Y' and isnull(U_smassenfax,'') =''"
BP = SwissAddonFramework.B1Connector.GetB1Connector().Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oBusinessPartners )
DR = SwissAddonFramework.B1Connector.GetB1Connector().ExecuteQuery(sSql)
Dim sTemp As String
Dim i As Integer=0
Dim iRetVal As Integer=0
Dim sErr As String=""
Try
While dr.HasRows
If dr.Read () Then
i+=1
sTemp = dr.GetString(0)
SwissAddonFramework.B1Connector.GetB1Connector().Application.MessageBox ("hi " & i & " ; " & stemp)
If i>5 Then Exit While
BP.GetByKey(sTemp)
BP.Properties(13)=SAPbobsCOM.BoYesNoEnum.tNO
BP.Properties(31)=SAPbobsCOM.BoYesNoEnum.tYES
iRetval=BP.Update()
If iRetval<>0 Then
SwissAddonFramework.B1Connector.GetB1Connector().Company.GetLastError (iretval, sErr)
SwissAddonFramework.B1Connector.GetB1Connector().Application.MessageBox (serr)
End If
End If
End While
Catch ex As System.Exception
SwissAddonFramework.B1Connector.GetB1Connector().Application.MessageBox (ex.toString())
End Try
Wenn ich die zeile "iretval=BP.Update()" herausnehme funktioniert es. Jedoch brauche ich diese Methode um die Daten auch wieder zu sichern.Weis jemand was hier falsch läuft?
viele Grüsse
Markus
Manuel Marhold
Hi Markus,wann führst du das aus?
Markus Rewak
hi Manuel,ich setze einen Button auf Form 134 "Geschäftspartner".
1. GP-Form öffnen
2. Funktion aufrufen
Ich möchte eigentlich nur ein paar Daten beim GP abändern.
gruss
Markus
Manuel Marhold
Hi Markus,versuche mal den Button in einem anderen Form unterzubringen, z.B. Artikel und dort auszuführen.
Ich hatte das Prob., dass ich keinen Geschäftspartner über DI ändern konnte, wenn ich einen per UI geöffnet hatte.
Markus Rewak
das bringt leider auch nichts. Beim 1.Update crashed das Addon.Gruss
Markus
Manuel Marhold
Hi,versuche mal
If BP.GetByKey(sTemp) Then
BP.Properties(13)=SAPbobsCOM.BoYesNoEnum.tNO
BP.Properties(31)=SAPbobsCOM.BoYesNoEnum.tYES
iRetval=BP.Update()
Else
SwissAddonFramework.B1Connector.GetB1Connector().Application.MessageBox ("nicht gefunden " & i & " ; " & stemp)
End If
Markus Rewak
Hallo Manuel,das funktioniert leider auch nicht.
Jetzt würde mich aber mal interessieren ob es auf deinem System funktioniert, oder ob evtl. meine Umgebung Schwierigkeiten macht. Obwohl meine anderen Addons laufen alle ohne Probleme.
Ich verwende:
SAP 2007A Sp00 PL48
coresuite customize: 1.55
viele Grüsse
Markus
Manuel Marhold
Hi Markus,welche Fehlermeldung erhälst du denn?
Ich habe hier leider kein System mit customize, mache das alles ausm Kopf..
Markus Rewak
hi Manuel,dann stell dir mal vor.... :D
nein, ich bekomme überhaupt keine Fehlermeldung.
Ich bekomme die 1. Messagebox, danach drücke ich auf Ok und mir friert das System ein. Die Messagebox habe ich nur eingebaut um zu sehen an welcher Stelle das Programm stehen bleibt.
Aber nachdem das System eingefroren ist, kann ich den Prozess coresuite.exe nur noch über den Taskmanager beenden.
Manuel Marhold
Hi.Kannst du iRetVal nach dem BP.Update mal in einer MsgBox ausgeben lassen?
Und direkt davor evtl. auch eine MsgBox..
Markus Rewak
hi Manuel,der steigt direkt beim update aus, d.h. das System friert direkt beim Ausführen dieser Zeile ein.
iRetval kann somit nicht mehr ausgewertet werden.
Eigentlich müsste durch den try catch block der fehler abgefangen werden,
aber so langsam glaube ich dass es am customizer liegt.
gruss
Markus
Manuel Marhold
Hi Markus,da kann ich dir dann so leider auch nicht weiterhelfen...
evtl. schaffe ich es heute abend ein System mit customize aufzusetzen..
Markus Rewak
Hallo Manuel,wenn ich die sql mit top 1000 begrenze dann funktioniert die Geschichte.
Ausserdem habe ich die while-Bedingung in while dr.read() abgeändert.
Vielen Dank für deine Unterstützung
Grüsse
Markus
0
Please sign in to leave a comment.
Comments
0 comments