Neue Stückliste anlegen
Frank Romeni
System: SAPB1 2005A SP01 PL39Framework: V2.39.0.0
Customize: 1.46
Ich nutze einen Function Button um eine neue Stückliste anzulegen und habe damit diverse Probleme.
Ich habe diese Probleme bereits (mit Code der nicht auf das Coresuite-Framework verweist) in's SAP-Forum gestellt.
Von dort kam die Antwort, daß der Code korrekt sei und auch funktioniere!
Außerdem hat ein Kollege den angepaßten aber von der Struktur her unveränderten Code in ein externes Programm in C++ geschrieben und mit SAP verbunden - auch hier war das Ergebnis korrekt.
Problem 1:
Ich lege eine neue Stückliste mit Komponenten-Artikel an - soweit funktioniert auch alles.
Wenn ich jedoch Mengen für die einzelnen Artikel angebe, so wird in SAP immer nur der Standardwert angezeigt (1).
Ein angegebener Preis wird in SAP garnicht angezeigt.
Seltsamerweise wird die von mir gesetzte Preisliste jedoch in SAP angezeigt!
Hier ist der Code mit dem ich teste (Function Button):
try{
SAPbobsCOM.ProductTrees oTree = (SAPbobsCOM.ProductTrees)SwissAddonFramework.B1Connector.GetB1Connector().Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oProductTrees);
oTree.TreeCode = "testCode";
oTree.TreeType = SAPbobsCOM.BoItemTreeTypes.iProductionTree;
//oTree.Quantity = 1; // error when calling add(): -5002
for(int row = 0; row < 3; row++){
oTree.Items.ItemCode= "testCode" + row.ToString();
oTree.Items.Quantity= 5; // doesn't work
oTree.Items.PriceList= 2; // this works
oTree.Items.Price= 500.50; // doesn't work
oTree.Items.Currency= "EUR";
oTree.Items.Add();
}
if(oTree.Add() != 0){
// error handling ...
return;
}
}
catch(System.Exception ex){
// exception handling ...
return;
}
SwissAddonFramework.UI.Dialogs.MessageBox.Show("Stückliste angelegt", "OK");
Problem 2:
Will ich de Menge auf Stücklistenebene angeben, so wird bei Aufruf der Methode add() der folgende Fehler gemeldet:
"-5002 Die Menge des übergeordneten Artikels fehlt [OITT.Qauntity], 'testCode'
...
oTree.Quantity = 1;
...
oTree.Add();
...
Ich bedanke mich für jede Hilfestellung!
Frank Romeni
Michael Egloff
Hallo Frank,ich habe die Testartikel mit dem "testCode" von Hand angelegt, deinen Code so kopiert und er hat auf Anhieb funktioniert! Auch das setzen des
oTree,Quantity = 1
hat funktioniert.
Habe jedoch ein SAP 2007 zum Testen genutzt.
Werde mich wieder melden, falls ich ein 2005 SAP zum testen vor mir habe.
Gruss
Michael Egloff
Hallo nochmals,auch auf einem Testsystem mit SAP 2005 SP01 PL41 hat dein Code einwandfrei geklappt.
Was machst du bei '// errorhandling'?
Kannst du da mal versuchen, Messages auszugeben
if(oTree.Add() != 0){
MessageBox.Show("Konnte nicht hinzufügen: " + SwissAddonFramework.B1Connector.GetB1Connector().Company.GetLastErrorDescription(), "OK");
return;
}
}
catch(System.Exception ex){
MessageBox.Show("Fehler: " + ex.Message, "OK");
return;
}Frank Romeni
Hallo Michael,beim Error-/Exception-Handling habe ich genau den Code verwendet, den auch Du vorschlägst. Beim Setzen von oTree.Quantity = 1 erscheint beim Add() dann der Fehler, den ich in meiner ursprünglichen Mail angegeben habe: -5002, ...
Ich habe langsam den Verdacht, daß meine Datenbank nicht in Ordnung sein könnte. Ich werde eine neue aufsetzen und mich dann später eventuell wieder melden.
Danke!
Frank Romeni
Frank Romeni
Hallo Michael,noch eine Info zum Abschluß.
Das Problem lag nicht am Framework sondern an unserer Datenbank!
Der Fehler tritt nicht mehr auf seitdem ich eine neue Datenbank aufgesetzt habe.
Bis dann!
Frank Romeni
Sascha Balke
Hallo Frank,erstellt du damit, in einem Verkaufsbeleg, eine neue Stückliste oder wo setzt du es genau ein und wie ?
VG
Sascha
Frank Romeni
Hallo Sacha,zu Deiner Frage bzgl. der Anwendung:
Natürlich ist das von mir hier angegebene Codebeispiel nur ein prinzipieller Test, ob ich eine Stückliste mit gegebenen Werten anlegen kann.
Die Fehler, die ich angegeben hatte, sind inzwischen gelöst - es lag an meiner alten Datenbank!
Wir haben spezielle Stücklisten mit diversen Komponenten als Vorlage. Über ein Zeilen-UDF können die Komponenten markiert werden, die tatsächlich benötigt werden.
Über einen Function Button in der Stücklisten-Form lege ich eine neue Stückliste an und übernehme die in der Vorlage markierten Komponenten. Dabei müssen natürlich die Werte, die pro Komponente in der Vorlage stehen (z.B. Menge etc.) in die neue Stückliste geschrieben werden. Das war das ursprüngliche Problem.
Gruß
Frank Romeni
0
Please sign in to leave a comment.
Comments
0 comments