Klassifizierung via SD BAPI

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

Klassifizierung via SD BAPI

Beitrag von bechi (ForumUser / 22 / 0 / 1 ) »
Hallo alle miteinander,
Ich habe folgendes Problem. Es gibt bei uns Materialien bei denen eine Klassifizierung hinterlegt ist. Beim Auftrag anlegen müssen die Merkmale definiert werden. Hierzu wird im Auftrag ein Konfigurator aufgerufen und der User wählt die Merkmale aus. Das ganze soll nun auch via BAPI gehen, da wir verschiedene Satelitensysteme anbinden müssen.
Mein Problem ist, dass beim BAPI-Aufruf der Konfigurator aufgerufen wird, obwohl ich dem BAPI alle Merkmale mitgebe. Ich habe mich schon bei der SAP durch die Hinweise gewühlt und nur einen gefunden, der auf das Problem eingeht (Hinweis 662276). Aber ich bin der Meinung, dass ich die Merkmale komplett dem BAPI übergebe. Ich habe dann ein Testprogramm geschrieben, dass einen kompletten Auftrag mit Merkmalen ausliest und dann wieder mit der selben Ausprägung einen Auftrag anlegt. Leider erscheint da auch der Konfigurator und ich bin so langsam mit meinem Latein am Ende. Ich stelle euch das Programm hier zur Verfügung. Vielleicht hat jemand eine Idee, eine Anmerkung oder sonst irgendeinen Hinweis, der das Problem lösen kann.
Ich bedanke mich schon im Voraus für Eure Hinweise/Lösungen!

Gruß
Christian

P.S.:Sammelhinweis zur Klassifizierung: Hinweis 774346

Hier noch der Code:

Code: Alles auswählen.

CONSTANTS:  gc_cross               TYPE c VALUE 'X'
           .

DATA:  lt_sales_doc               TYPE TABLE OF sales_key
      ,lt_order_headers_out       TYPE TABLE OF bapisdhd
      ,lt_order_items_out         TYPE TABLE OF bapisdit
      ,lt_order_items_in          TYPE TABLE OF bapisditm
      ,lt_order_schedules_out     TYPE TABLE OF bapisdhedu
      ,lt_orders_cfgs_cucref_out  TYPE TABLE OF bapicucfgm
      ,lt_orders_cfgs_curfinst    TYPE TABLE OF bapicurefm
      ,lt_orders_cfgs_ins_out     TYPE TABLE OF bapicuinsm
      ,lt_orders_cfgs_prts_out    TYPE TABLE OF bapicuprtm
      ,lt_orders_cfgs_vals_out    TYPE TABLE OF bapicuvalm
      ,lt_orders_cfgs_curef_in    TYPE TABLE OF bapicucfg
      ,lt_orders_cfgs_curefins_in TYPE TABLE OF bapicuref
      ,lt_orders_cfgs_ins_in      TYPE TABLE OF bapicuins
      ,lt_orders_cfgs_prts_in     TYPE TABLE OF bapicuprt
      ,lt_orders_cfgs_vals_in     TYPE TABLE OF bapicuval
      ,lt_order_partners_out      TYPE TABLE OF bapisdpart
      ,lt_order_partners_in       TYPE TABLE OF bapiparnr
      ,lt_order_schedules_in      TYPE TABLE OF bapischdl
      ,lt_order_item_inx          type table of BAPISDITMX
      ,lt_return                  type table of BAPIRET2
      ,lt_orders_cfgs_blob_out    type table of BAPICUBLBM
      ,lt_orders_cfgs_variant_out type table of BAPICUVKM


      ,lwa_order_header_in        TYPE bapisdhd1
      ,lwa_order_header_out       TYPE bapisdhd
      ,lwa_bapi_view              TYPE order_view
      ,lwa_sales_doc              TYPE sales_key
      ,lwa_order_items            TYPE bapisdit
      ,lwa_order_schedules        TYPE bapisdhedu
      ,lwa_orders_cfgs_ref_in     TYPE bapicucfg
      ,lwa_orders_cfgs_curef_out    TYPE bapicucfgm
      ,lwa_orders_cfgs_curfinst_out TYPE bapicurefm
      ,lwa_orders_cfgs_curef_in     TYPE bapicuref
      ,lwa_orders_cfgs_ins_out      TYPE bapicuinsm
      ,lwa_orders_cfgs_ins_in       TYPE bapicuins
      ,lwa_orders_cfgs_prts_in      TYPE bapicuprt
      ,lwa_orders_cfgs_prts_out     TYPE bapicuprtm
      ,lwa_orders_cfgs_vals_out     TYPE bapicuvalm
      ,lwa_orders_cfgs_vals_in      TYPE bapicuval
      ,lwa_order_items_in           TYPE bapisditm
      ,lwa_order_partner_in         TYPE bapiparnr
      ,lwa_order_partner_out        TYPE bapisdpart
      ,lwa_order_schedules_in       TYPE bapischdl
      ,lwa_order_schedules_out      TYPE bapisdhedu
      ,lwa_order_item_inx           type BAPISDITMX


      ,lv_sales_doc               TYPE vbeln
      ,lv_index                   TYPE i
      .





**selection screen

PARAMETER p_vbeln TYPE vbeln OBLIGATORY.

* define order views
lwa_bapi_view-header = gc_cross.
lwa_bapi_view-item = gc_cross.
lwa_bapi_view-sdschedule = gc_cross.
lwa_bapi_view-configure = gc_cross.
lwa_bapi_view-partner =  gc_cross.

* fill order structure
lwa_sales_doc-vbeln = p_vbeln.
APPEND lwa_sales_doc TO lt_sales_doc.


CALL FUNCTION 'BAPISDORDER_GETDETAILEDLIST'
  EXPORTING
    i_bapi_view                   = lwa_bapi_view
*   I_MEMORY_READ                 =
  TABLES
    sales_documents               = lt_sales_doc
    order_headers_out             = lt_order_headers_out
    order_items_out               = lt_order_items_out
    order_schedules_out           = lt_order_schedules_out
*    ORDER_BUSINESS_OUT            =
    order_partners_out            = lt_order_partners_out
*   ORDER_ADDRESS_OUT             =
*   ORDER_STATUSHEADERS_OUT       =
*   ORDER_STATUSITEMS_OUT         =
*   ORDER_CONDITIONS_OUT          =
*   ORDER_COND_HEAD               =
*   ORDER_COND_ITEM               =
*   ORDER_COND_QTY_SCALE          =
*   ORDER_COND_VAL_SCALE          =
*   ORDER_CONTRACTS_OUT           =
*   ORDER_TEXTHEADERS_OUT         =
*   ORDER_TEXTLINES_OUT           =
*   ORDER_FLOWS_OUT               =
    order_cfgs_curefs_out         = lt_orders_cfgs_curfinst
    order_cfgs_cucfgs_out         = lt_orders_cfgs_cucref_out
    order_cfgs_cuins_out          = lt_orders_cfgs_ins_out
    order_cfgs_cuprts_out         = lt_orders_cfgs_prts_out
    order_cfgs_cuvals_out         = lt_orders_cfgs_vals_out
    ORDER_CFGS_CUBLBS_OUT         = lt_orders_cfgs_blob_out
    ORDER_CFGS_CUVKS_OUT          = lt_orders_cfgs_variant_out
*   ORDER_BILLINGPLANS_OUT        =
*   ORDER_BILLINGDATES_OUT        =
*   ORDER_CREDITCARDS_OUT         =
*   EXTENSIONOUT                  =
          .


READ TABLE lt_order_headers_out INTO lwa_order_header_out INDEX 1.
lv_index = lwa_order_header_out-purch_no+14(6).
ADD 1 TO lv_index.
lwa_order_header_out-purch_no+14(6) = lv_index.
lwa_order_header_in-DOC_TYPE = lwa_order_header_out-DOC_TYPE.
lwa_order_header_in-SALES_ORG = lwa_order_header_out-SALES_ORG.
lwa_order_header_in-DISTR_CHAN = lwa_order_header_out-DISTR_CHAN.
lwa_order_header_in-DIVISION = lwa_order_header_out-DIVISION.
lwa_order_header_in-purch_no_c = lwa_order_header_out-purch_no.
lwa_order_header_in-PURCH_DATE = sy-datum.

LOOP AT lt_order_partners_out INTO lwa_order_partner_out
   WHERE partn_role = 'AG'.
  lwa_order_partner_in-partn_role = lwa_order_partner_out-partn_role.
  lwa_order_partner_in-partn_numb = lwa_order_partner_out-customer.
  APPEND lwa_order_partner_in TO lt_order_partners_in.
  CLEAR lwa_order_partner_in.
ENDLOOP.


LOOP AT lt_order_items_out INTO lwa_order_items
  WHERE hg_lv_item IS INITIAL.

  READ TABLE lt_order_schedules_out INTO lwa_order_schedules_out WITH
KEY itm_number = lwa_order_items-itm_number.

  lwa_order_schedules_in-itm_number =
                                   lwa_order_schedules_out-itm_number.
  lwa_order_schedules_in-req_qty    = lwa_order_schedules_out-req_qty.
  APPEND lwa_order_schedules_in TO lt_order_schedules_in.

  lwa_order_items_in-itm_number = lwa_order_items-itm_number.
  lwa_order_items_in-material   = lwa_order_items-material.
  lwa_order_items_in-po_itm_no  =  lwa_order_items-itm_number.
  lwa_order_items_in-target_qty = lwa_order_schedules_out-req_qty.
  APPEND lwa_order_items_in TO lt_order_items_in.

  lwa_order_item_inx-itm_number = lwa_order_items-itm_number.
  lwa_order_item_inx-po_itm_no = gc_cross.
  lwa_order_item_inx-CONFIG_ID = gc_cross.
  lwa_order_item_inx-INST_ID   = gc_cross.
  append lwa_order_item_inx to lt_order_item_inx.


  CLEAR lwa_order_items_in.
ENDLOOP.

LOOP AT lt_orders_cfgs_cucref_out INTO lwa_orders_cfgs_curef_out.
  lwa_orders_cfgs_ref_in-posex      = lwa_orders_cfgs_curef_out-posex.
  lwa_orders_cfgs_ref_in-config_id  =
                                    lwa_orders_cfgs_curef_out-config_id.
  lwa_orders_cfgs_ref_in-root_id    = lwa_orders_cfgs_curef_out-root_id.
  lwa_orders_cfgs_ref_in-COMPLETE   =
                                     lwa_orders_cfgs_curef_out-COMPLETE.
  lwa_orders_cfgs_ref_in-CONSISTENT =
                                   lwa_orders_cfgs_curef_out-CONSISTENT.
  APPEND lwa_orders_cfgs_ref_in TO lt_orders_cfgs_curef_in.
  CLEAR lwa_orders_cfgs_ref_in.
ENDLOOP.

LOOP AT lt_orders_cfgs_curfinst  INTO lwa_orders_cfgs_curfinst_out.
  lwa_orders_cfgs_curef_in-posex     =
                                     lwa_orders_cfgs_curfinst_out-posex.
  lwa_orders_cfgs_curef_in-config_id =
                                 lwa_orders_cfgs_curfinst_out-config_id.
  lwa_orders_cfgs_curef_in-inst_id   =
                                   lwa_orders_cfgs_curfinst_out-inst_id.
  APPEND lwa_orders_cfgs_curef_in TO lt_orders_cfgs_curefins_in.
  CLEAR lwa_orders_cfgs_curef_in.
ENDLOOP.

LOOP AT lt_orders_cfgs_ins_out INTO lwa_orders_cfgs_ins_out.
  lwa_orders_cfgs_ins_in-config_id = lwa_orders_cfgs_ins_out-config_id.
  lwa_orders_cfgs_ins_in-inst_id = lwa_orders_cfgs_ins_out-inst_id.
  lwa_orders_cfgs_ins_in-obj_type = lwa_orders_cfgs_ins_out-obj_type.
 lwa_orders_cfgs_ins_in-class_type = lwa_orders_cfgs_ins_out-class_type.
  lwa_orders_cfgs_ins_in-obj_key       =
                                         lwa_orders_cfgs_ins_out-obj_key
.
  lwa_orders_cfgs_ins_in-quantity      =
                                      lwa_orders_cfgs_ins_out-quantity.
  lwa_orders_cfgs_ins_in-QUANTITY_UNIT =
                                lwa_orders_cfgs_ins_out-QUANTITY_UNIT.
  lwa_orders_cfgs_ins_in-COMPLETE      =
                                      lwa_orders_cfgs_ins_out-COMPLETE.
  lwa_orders_cfgs_ins_in-CONSISTENT    =
                                    lwa_orders_cfgs_ins_out-CONSISTENT.
  APPEND lwa_orders_cfgs_ins_in TO lt_orders_cfgs_ins_in.
  CLEAR lwa_orders_cfgs_ins_in.
ENDLOOP.

LOOP AT lt_orders_cfgs_prts_out INTO lwa_orders_cfgs_prts_out.
 lwa_orders_cfgs_prts_in-config_id = lwa_orders_cfgs_prts_out-config_id.
 lwa_orders_cfgs_prts_in-parent_id = lwa_orders_cfgs_prts_out-parent_id.
  lwa_orders_cfgs_prts_in-inst_id = lwa_orders_cfgs_prts_out-inst_id.
  lwa_orders_cfgs_prts_in-part_of_no =
                                    lwa_orders_cfgs_prts_out-part_of_no.
  lwa_orders_cfgs_prts_in-obj_type = lwa_orders_cfgs_prts_out-obj_type.
  lwa_orders_cfgs_prts_in-class_type =
                                    lwa_orders_cfgs_prts_out-class_type.
  lwa_orders_cfgs_prts_in-obj_key = lwa_orders_cfgs_prts_out-obj_key.
  lwa_orders_cfgs_prts_in-SALES_RELEVANT =
                                lwa_orders_cfgs_prts_out-SALES_RELEVANT.
  APPEND lwa_orders_cfgs_prts_in TO lt_orders_cfgs_prts_in.
  CLEAR lwa_orders_cfgs_prts_in.
ENDLOOP.

LOOP AT lt_orders_cfgs_vals_out INTO lwa_orders_cfgs_vals_out.
 lwa_orders_cfgs_vals_in-config_id = lwa_orders_cfgs_vals_out-config_id.
  lwa_orders_cfgs_vals_in-inst_id   = lwa_orders_cfgs_vals_out-inst_id.
  lwa_orders_cfgs_vals_in-charc     = lwa_orders_cfgs_vals_out-charc.
  lwa_orders_cfgs_vals_in-value     = lwa_orders_cfgs_vals_out-value.
  APPEND lwa_orders_cfgs_vals_in TO lt_orders_cfgs_vals_in.
  CLEAR lwa_orders_cfgs_vals_in.
ENDLOOP.


CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
  EXPORTING
*   SALESDOCUMENTIN               =
    order_header_in               = lwa_order_header_in
*   ORDER_HEADER_INX              =
*   SENDER                        =
*   BINARY_RELATIONSHIPTYPE       =
*   INT_NUMBER_ASSIGNMENT         =
*   BEHAVE_WHEN_ERROR             =
*   LOGIC_SWITCH                  =
*   TESTRUN                       =
*   CONVERT                       = ' '
 IMPORTING
   salesdocument                 = lv_sales_doc
  TABLES
    RETURN                        = lt_return
    order_items_in                = lt_order_items_in
    ORDER_ITEMS_INX               = lt_order_item_inx
    order_partners                = lt_order_partners_in
    order_schedules_in            = lt_order_schedules_in
*   ORDER_SCHEDULES_INX           =
*   ORDER_CONDITIONS_IN           =
*   ORDER_CONDITIONS_INX          =
   order_cfgs_ref                = lt_orders_cfgs_curef_in
   order_cfgs_inst               = lt_orders_cfgs_ins_in
   order_cfgs_part_of            = lt_orders_cfgs_prts_in
   order_cfgs_value              = lt_orders_cfgs_vals_in
*   ORDER_CFGS_BLOB               =
*   ORDER_CFGS_VK                 =
   order_cfgs_refinst            = lt_orders_cfgs_curefins_in
*   ORDER_CCARD                   =
*   ORDER_TEXT                    =
*   ORDER_KEYS                    =
*   EXTENSIONIN                   =
*   PARTNERADDRESSES              =
          .

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
* EXPORTING
*   WAIT          =
* IMPORTING
*   RETURN        =
          .

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Beitrag von ewx (Top Expert / 4844 / 311 / 639 ) »
Hi bechi,

wenn das so ein offensichtlicher Fehler ist, dann stelle doch eine OSS-Anfrage. Da du ja ein Programm hast, mit dem der Fehler eindeutig nachvollziehbar ist, kümmert sich die SAP in der Regel darum.
Wenn Sie gleich zu Anfang sagt, das wäre ja ein Kundenprogramm und somit könnten sie nix für dich tun, dann musst du geduldig bleiben und nochmal erklären, warum es aus deiner Sicht eben doch ein SAP-Problem ist und dann klappt es auch meistens. Selbst wenn es tatsächlich an einem verkehrten Aufruf der BAPIs liegen sollte, muss die SAP das auch erstmal herausfinden und in der Regel rücken sie dann auch mit einer Info raus, was wo verkehrt ist.

Ich würde das Programm noch von unnötigen *-Zeilen befreien und bis auf das nötigste ausdünnen (mir scheint, es ist eh nur das nötigste drin...).

Viel Erfolg,
Gruß, Enno

Beitrag von bechi (ForumUser / 22 / 0 / 1 ) »
Hallo,

habe von der SAP die Lösung bekommen. War ein kleines Flag im Customizing *g*. Ich stelle die Lösung zur Verfügung, damit der Thread auch eine Lösung hat und dem nächsten hoffentlich eine gute Hilfe ist.
Damit der Konfigurator im BAPI nicht hochpop, darf kein Flag bei der Simulation im View V_T476 (Parameterization of the Configuration Editor) gesetzt sein.

Gruß
Christian

Seite 1 von 1

Vergleichbare Themen

1
Antw.
2860
Views
per BAPI-Control über Visual Basic ein BAPI aufrufen
von Kaiwalker » 25.07.2005 15:22 • Verfasst in ABAP® Core
2
Antw.
4688
Views
Klassifizierung
von sap_inchen » 18.10.2018 22:29 • Verfasst in SAP - Allgemeines
3
Antw.
2224
Views
Klassifizierung
von BUDNI-Sandra » 09.05.2005 14:40 • Verfasst in ABAP Objects®
3
Antw.
4238
Views
Klassifizierung ändern
von c oco » 08.05.2012 09:43 • Verfasst in ABAP® Core

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 8 Stunden von Bright4.5 1 / 163
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 1805
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8408