aktuell versuche ich im Rahmen meines Studiums einen Wert aus einer SPS in das Feld Langtext unter CO11N in SAP einlesen zu lassen. Hierfür habe ich mir folgendes Forgehen ausgedacht:
1. Produktionsauftragsnummer X finden (CO03) BAPI_PRODORD_GET_LIST
2. Produktionsauftrag X prüfen, ob Wert freigegeben und Material X hinterlegt (um den richtigen FA zu finden, für den das Programm den Wert hinterlegen soll)
a. Wenn Wert freigegeben und ein EINMALIGER Materialname "X" hinterlegt ist, dann soll der Paramenter Produktionsauftragsnummer an die SPS geschickt werden
b. Sonst wenn Wert nicht freigegeben und/oder Material "X" nicht hinterlegt ist, dann nächsten Fertigungsauftrag prüfen bis Material "X" und freigegeben gefunden, dann springt das Programm in 2 a.
3. Wenn der FA freigegeben ist, dann wird auch produziert (vereinfachter Zeitpunkt für schreiben aus SPS), d.h ab hier schickt die SPS Werte an das SAP PCO
4. Wenn im Fertigungsauftrag der Schritt 1 rückgemeldet ist, dann liest SAP die Werte der SPS, ansonsten laufen die gesendeten Werte der SPS ins leere
a. Werte aus der SPS für Aufgragsnummer = X automatisch in das SAP einlesen (Berechnung im Programm hinterlegen Wert SPS * 338)
b. Wenn eigelesen und berechnet, soll der Wert in das Feld Langtext ist unter Rückmeldung CO11n schreiben
5. Wenn die Rückmeldung erfolgt, muss SAP neu bei 1. beginnen
Da ich leider bis jetzt keine Kenntnisse in der ABAP Programmierung besitze gestaltest sich Erstellung dieses Programms als schwierig. Daher die Frage, welche BAPIs evtl. hierfür eingesetzt werden könnten und wie das oben beschriebene Vorgehen konkret in einem Programm umgesetzt werden könnte. Die Verbindung der SPS zu SAP, sowie die nötigen variablen in der SPS sind bereits vorhanden.
Wenn ich das recht verstehe, brauchst du einen Baustein, der dir die Nummer des Fertigungsauftrags zurück liefert.
Der Fertigungsauftrag ist gekennzeichnet durch einen eindeutigen Materialnamen und soll im Status freigeben sein.
Da stellt sich dem SAPler schon sofort die Frage: was meint "EINMALIGER Materialname"? Materialbezeichnung oder Materialnummer?
Wenn Materialnummer dann könntest du sofort mit dem BAPI_PRODORD_GET_LIST losrennen, weil mit dem nach Materialnummer gefiltert werden kann.
Wenn Materialbezeichnung, dann müsstest du erst aus der "einmaligen Materialbezeichnung" die Nummer ermitteln und könntest dann den BAPI_PRODORD_GET_LIST einsetzen.
Dann sind mir die nächsten Schritte nicht so ganz klar, soll eine Rückmeldung angelegt oder eine bestehende im Langtext geändert werden?
Wenn eine Rückmeldung angelegt werden soll, dann würde ich es mit dem BAPI_PRODORDCONF_CREATE_ACT versuchen.
Wenn eine Rückmeldung im Langtext geändert werden soll, dann müsstest du es wahrscheinlich auf Datenbank-Ebene versuchen. Ich weiß dafür jedenfalls keinen Baustein.
vielen danke für die Antwort. Der "einmalige Materialname" kann auch direkt über die Materialnummer bezeichnet werden. Es soll eine Rückmeldung angelegt werden, bei der der Wert des Stroms in das Langtextfeld geschrieben wird. Die Antwort hat mir schon viel weitergeholfen, vielen lieben Dank.