Anlage Angebot "BAPI_QUOTATION_CREATEFROMDATA2"

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

SAP R/3 Vertrieb: Auftragsverwaltung, Versand und Transport, Fakturierung, Kreditmanagement, Außenhandel/Zoll...
10 Beiträge • Seite 1 von 1
10 Beiträge Seite 1 von 1

Anlage Angebot "BAPI_QUOTATION_CREATEFROMDATA2"

Beitrag von carlie (ForumUser / 49 / 0 / 2 ) »
Hallo,

nachdem mein erstes Problem relativ schnell gelöst wurde, muss ich nun nochmals ein neues Thema erstellen. Es geht hierbei immer noch um den BAPI "BAPI_QUOTATION_CREATEFROMDATA2". Was schon einmal funktioniert ist, das eine Sales Quotation angelegt wird. Bei folgenden beiden Punkten habe ich jedoch noch Probleme.

1. Wenn ich die angelegte Quotation aufrufe (VA22/va23) hat die neue Position keine Menge. In der Tabelle VPAP ist im Feld KWMENG ebenfalls keine Menge angelegt. Bei dem BADI gebe ich für die Position folgende Werte mit.

Code: Alles auswählen.

  APPEND INITIAL LINE TO LT_QUOTATION_ITEMS_IN ASSIGNING <QUOTATION_ITEMS_IN_LINE>.
  <QUOTATION_ITEMS_IN_LINE>-PO_ITM_NO   = '10'.
  <QUOTATION_ITEMS_IN_LINE>-MATERIAL    = 'A38'.
  <QUOTATION_ITEMS_IN_LINE>-PLANT       = '0020'.
  <QUOTATION_ITEMS_IN_LINE>-ITEM_CATEG  = 'AGC'.
  <QUOTATION_ITEMS_IN_LINE>-TARGET_QTY  = '1'.
  <QUOTATION_ITEMS_IN_LINE>-TARGET_QU   = 'ST'.
Vielleicht muss ich noch an einer anderen Stelle die Menge mitgeben.

2. Das zweite Problem bezieht sich auf das Anlegen der Konfiguration. Die Konfiguration wird wie es die SAP Doku beschreibt in den Tabellen "QUOTATION_CFGS_REF, QUOTATION_CFGS_INST, QUOTATION_CFGS_PART_OF, QUOTATION_CFGS_VALUE" übergeben. Es gibt von seiten SAP auch eine Outbound API wo die gelieferten Felder aufgeführt sind. Die Konfig wird jedoch nicht gespeichert und es wird ebenfalls vom System keine COBJ Nummer vergeben. In der Tabelle VPAP ist ebenfalls keine COBJ vorhanden. Dies bedeutet das die Konfig im Angebot nicht gespeichert wird.

Ich würde mich über weitere Hilfe zu dem BAPI freuen.

Gruß,

Thorsten

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


Re: Anlage Angebot "BAPI_QUOTATION_CREATEFROMDATA2"

Beitrag von schick (ForumUser / 52 / 5 / 15 ) »
Hi,

nutze die Einteilungen für die Übergabe der Mengen.

Für dein Beispiel sollte das so funktionieren:

Code: Alles auswählen.

APPEND INITIAL LINE TO lt_quotation_schedules_in ASSIGNING <quotation_schedules_in_line>.
<quotation_schedules_in_line>-itm_number = '10'.
<quotation_schedules_in_line>-req_qty  = '1'.
Und natürlich dem Funktionsbaustein die entsprechenden Daten noch übergeben:

Code: Alles auswählen.

CALL FUNCTION 'BAPI_QUOTATION_CREATEFROMDATA2'
  EXPORTING
    quotation_header_in    = ls_quotation_header_in
  TABLES
    quotation_items_in     = lt_quotation_items_in
    quotation_partners     = lt_quotation_partners
    quotation_schedules_in = lt_quotation_schedules_in

Re: Anlage Angebot "BAPI_QUOTATION_CREATEFROMDATA2"

Beitrag von carlie (ForumUser / 49 / 0 / 2 ) »
Hallo,

komme leider erst jetzt zum Antworten. Ich habe deinen vorschlag in meinen ABAP Code eingebaut. Die menge 1 wird jetzt im Angebot gesetzt. Also dieser Punkt ist erst mal für meinen Test erledigt.
Vielleicht kann mir jetzt noch jemand eine Tipp geben wie ich das Konfigurations problem in den Griff bekomme.
An der Stelle habe ich weiterhin das problem das die Konfigration nicht abgespeichert wird und keine COBJ nummer in der VBAP geschrieben wird.

Gruß,

Thorsten

Re: Anlage Angebot "BAPI_QUOTATION_CREATEFROMDATA2"

Beitrag von schick (ForumUser / 52 / 5 / 15 ) »
carlie hat geschrieben:Hallo,

komme leider erst jetzt zum Antworten. Ich habe deinen vorschlag in meinen ABAP Code eingebaut. Die menge 1 wird jetzt im Angebot gesetzt. Also dieser Punkt ist erst mal für meinen Test erledigt.
Vielleicht kann mir jetzt noch jemand eine Tipp geben wie ich das Konfigurations problem in den Griff bekomme.
An der Stelle habe ich weiterhin das problem das die Konfigration nicht abgespeichert wird und keine COBJ nummer in der VBAP geschrieben wird.

Gruß,

Thorsten
Hi,

poste mal dein Coding zur Konfiguration, vielleicht kann ich auch da was zu sagen.

Re: Anlage Angebot "BAPI_QUOTATION_CREATEFROMDATA2"

Beitrag von carlie (ForumUser / 49 / 0 / 2 ) »
Hallo,

ich versuche nochmals im Detail zu erklären was ich gemacht habe. Die Externe Konfigdaten schick ich an einen SICF Knoten. In dem Knoten habe ich einen Eventhandler gebaut. In der Methode "Handle_Request" kommen die Konfigurationsdaten an.

Code: Alles auswählen.

* Holt den Request
  data:
        l_string type string,
        lt_CONFIG_DATA type  TIHTTPNVP.

  l_string = server->request->GET_CDATA( ).

  server->request->GET_FORM_FIELDS(
*  exporting
*    FORMFIELD_ENCODING = 0    " CO_FORMFIELD_ENCODING_RAW / _ENCODED
*    SEARCH_OPTION      = 3    " CO_BODY_BEFORE_QUERY_STRING or others
    changing
      FIELDS             =   lt_CONFIG_DATA  " Form-Felder
  ).

Ich habe nun in der "LT_CONFIG_DATA" die komplette Konfig Struktur als Key/Value paar. Von seiten SAP gibt es einen Hinweis 2156881 in dem die API erklärt wird. Nach vorgabe der API habe ich die Tabellen wie folgt aufgebaut. Die Pricing Parameter habe ich erst einmal außen vor gelassen. Folgende Tabellen habe ich nach den Outbound API gefüllt (QUOTATION_CFGS_REF, QUOTATION_CFGS_INST, QUOTATION_CFGS_PART_OF, QUOTATION_CFGS_VALUE ).

Code: Alles auswählen.

* Aufbau Tabelle LT_QUOTATION_CFGS_REF

  LOOP AT WA_QUOTATION_CFGS_REF ASSIGNING <LT_CONFIG_DATA_LINE>.

    LV_STRING_PRUEFUNG = <LT_CONFIG_DATA_LINE>-NAME.

    IF <LT_CONFIG_DATA_LINE>-NAME EQ 'cfg-consistent[1]'.
      lv_cfg_consistent = <LT_CONFIG_DATA_LINE>-VALUE.
    ELSEIF <LT_CONFIG_DATA_LINE>-NAME EQ 'cfg-kbname[1]'.
      lv_cfg_kbname = <LT_CONFIG_DATA_LINE>-VALUE.
    ELSEIF <LT_CONFIG_DATA_LINE>-NAME EQ 'cfg-complete[1]'.
      lv_cfg_complete = <LT_CONFIG_DATA_LINE>-VALUE.
    ELSEIF <LT_CONFIG_DATA_LINE>-NAME EQ 'cfg-kbversion[1]'.
      lv_cfg_kbversion  = <LT_CONFIG_DATA_LINE>-VALUE.
    ELSEIF <LT_CONFIG_DATA_LINE>-NAME EQ 'cfg-kblanguage[1]'.
      lv_cfg_kblanguage = <LT_CONFIG_DATA_LINE>-VALUE.
    ELSEIF <LT_CONFIG_DATA_LINE>-NAME EQ 'cfg-cfginfo[1]'.
      lv_cfg_cfginfo = <LT_CONFIG_DATA_LINE>-VALUE.
    ELSEIF <LT_CONFIG_DATA_LINE>-NAME EQ 'cfg-posex[1]'.
      lv_cfg_posex = <LT_CONFIG_DATA_LINE>-VALUE.
    ELSEIF <LT_CONFIG_DATA_LINE>-NAME EQ 'cfg-sce[1]'.
      lv_cfg_sce = <LT_CONFIG_DATA_LINE>-VALUE.
    ELSEIF <LT_CONFIG_DATA_LINE>-NAME EQ 'cfg-config_id[1]'.
      lv_cfg_config_id = <LT_CONFIG_DATA_LINE>-VALUE.
*    ELSEIF <LT_CONFIG_DATA_LINE>-NAME EQ 'cfg-kbbuild[1]'.
*      lv_consistent = <LT_CONFIG_DATA_LINE>-VALUE.
    ELSEIF <LT_CONFIG_DATA_LINE>-NAME EQ 'cfg-kbprofile[1]'.
      lv_cfg_kbprofile = <LT_CONFIG_DATA_LINE>-VALUE.
    ELSEIF <LT_CONFIG_DATA_LINE>-NAME EQ 'cfg-root_id[1]'.
      lv_cfg_root_id = <LT_CONFIG_DATA_LINE>-VALUE.
    ENDIF.

  ENDLOOP.

  APPEND INITIAL LINE TO LT_QUOTATION_CFGS_REF ASSIGNING <QUOTATION_CFGS_REF_LINE>.
  <QUOTATION_CFGS_REF_LINE>-POSEX         = LV_cfg_POSEX.
  <QUOTATION_CFGS_REF_LINE>-CONFIG_ID     = lv_cfg_config_id.
  <QUOTATION_CFGS_REF_LINE>-ROOT_ID       = lv_cfg_root_id.
  <QUOTATION_CFGS_REF_LINE>-SCE           = lv_cfg_sce.
  <QUOTATION_CFGS_REF_LINE>-KBNAME        = lv_cfg_kbname.
  <QUOTATION_CFGS_REF_LINE>-KBVERSION     = lv_cfg_kbversion.
  <QUOTATION_CFGS_REF_LINE>-COMPLETE      = lv_cfg_complete.
  <QUOTATION_CFGS_REF_LINE>-CONSISTENT    = lv_cfg_consistent.
  <QUOTATION_CFGS_REF_LINE>-CFGINFO       = lv_cfg_cfginfo.
  <QUOTATION_CFGS_REF_LINE>-KBPROFILE     = lv_cfg_kbprofile.
  <QUOTATION_CFGS_REF_LINE>-KBLANGUAGE    = lv_cfg_kblanguage.

* Aufbau Tabelle LT_ORDER_CFGS_INST

  LOOP AT WA_ORDER_CFGS_INST ASSIGNING <LT_CONFIG_DATA_LINE>.

    IF <LT_CONFIG_DATA_LINE>-NAME EQ 'ins-config_id[1]'.
      lv_ins_config_id = <LT_CONFIG_DATA_LINE>-VALUE.
    ELSEIF <LT_CONFIG_DATA_LINE>-NAME EQ 'ins-inst_id[1]'.
      lv_ins_INST_ID = <LT_CONFIG_DATA_LINE>-VALUE.
    ELSEIF <LT_CONFIG_DATA_LINE>-NAME EQ 'ins-obj_type[1]'.
      lv_ins_OBJ_TYPE = <LT_CONFIG_DATA_LINE>-VALUE.
    ELSEIF <LT_CONFIG_DATA_LINE>-NAME EQ 'ins-class_type[1]'.
      lv_ins_CLASS_TYPE  = <LT_CONFIG_DATA_LINE>-VALUE.
    ELSEIF <LT_CONFIG_DATA_LINE>-NAME EQ 'ins-obj_key[1]'.
      lv_ins_OBJ_KEY = <LT_CONFIG_DATA_LINE>-VALUE.
    ELSEIF <LT_CONFIG_DATA_LINE>-NAME EQ 'ins-obj_txt[1]'.
      lv_ins_OBJ_TXT = <LT_CONFIG_DATA_LINE>-VALUE.
    ELSEIF <LT_CONFIG_DATA_LINE>-NAME EQ 'ins-quantity[1]'.
      lv_ins_QUANTITY = <LT_CONFIG_DATA_LINE>-VALUE.
    ELSEIF <LT_CONFIG_DATA_LINE>-NAME EQ 'ins-author[1]'.
      lv_ins_AUTHOR = <LT_CONFIG_DATA_LINE>-VALUE.
    ELSEIF <LT_CONFIG_DATA_LINE>-NAME EQ 'ins-quantity_unit[1]'.
      lv_ins_QUANTITY_UNIT = <LT_CONFIG_DATA_LINE>-VALUE.
    ELSEIF <LT_CONFIG_DATA_LINE>-NAME EQ 'ins-complete[1]'.
      lv_ins_COMPLETE = <LT_CONFIG_DATA_LINE>-VALUE.
    ELSEIF <LT_CONFIG_DATA_LINE>-NAME EQ 'ins-consistent[1]'.
      lv_ins_CONSISTENT = <LT_CONFIG_DATA_LINE>-VALUE.
    ENDIF.

  ENDLOOP.

  APPEND INITIAL LINE TO LT_ORDER_CFGS_INST ASSIGNING <ORDER_CFGS_INST_LINE>.
  <ORDER_CFGS_INST_LINE>-CONFIG_ID       = lv_ins_config_id .
  <ORDER_CFGS_INST_LINE>-INST_ID         = lv_ins_INST_ID.
  <ORDER_CFGS_INST_LINE>-OBJ_TYPE        = lv_ins_OBJ_TYPE.
  <ORDER_CFGS_INST_LINE>-CLASS_TYPE      = lv_ins_CLASS_TYPE.
  <ORDER_CFGS_INST_LINE>-OBJ_KEY         = lv_ins_OBJ_KEY.
  <ORDER_CFGS_INST_LINE>-OBJ_TXT         = lv_ins_OBJ_TXT.
  <ORDER_CFGS_INST_LINE>-QUANTITY        = lv_ins_QUANTITY.
  <ORDER_CFGS_INST_LINE>-AUTHOR          = lv_ins_AUTHOR.
  <ORDER_CFGS_INST_LINE>-QUANTITY_UNIT   = lv_ins_QUANTITY_UNIT.
  <ORDER_CFGS_INST_LINE>-COMPLETE        = lv_ins_COMPLETE.
  <ORDER_CFGS_INST_LINE>-CONSISTENT      = lv_ins_CONSISTENT.


* Aufbau Tabelle LT_ORDER_CFGS_VALUE

* 1. Sortierung der Tabelle mit einer neuen Spalte ID

  LOOP AT WA_ORDER_CFGS_VALUE ASSIGNING <LT_CONFIG_DATA_LINE>.

    SPLIT <LT_CONFIG_DATA_LINE>-name at '[' INTO lv_split_string1 lv_split_string2.
    SHIFT lv_split_string2 RIGHT DELETING TRAILING ']'.
    lv_id = lv_split_string2.

    APPEND INITIAL LINE TO LT_ORDER_CFGS_VALUE_ID ASSIGNING <ORDER_CFGS_VALUE_ID_LINE>.
    <ORDER_CFGS_VALUE_ID_LINE>-NAME    = <LT_CONFIG_DATA_LINE>-NAME.
    <ORDER_CFGS_VALUE_ID_LINE>-VALUE   = <LT_CONFIG_DATA_LINE>-VALUE.
    <ORDER_CFGS_VALUE_ID_LINE>-ID      = lv_id.
    <ORDER_CFGS_VALUE_ID_LINE>-NAME1   = lv_split_string1.

  ENDLOOP.

  SORT LT_ORDER_CFGS_VALUE_ID DESCENDING BY ID .

  LOOP AT LT_ORDER_CFGS_VALUE_ID ASSIGNING <ORDER_CFGS_VALUE_ID_LINE>.
    lv_count  = <ORDER_CFGS_VALUE_ID_LINE>-ID.
    EXIT.
  ENDLOOP.

  SORT LT_ORDER_CFGS_VALUE_ID ASCENDING BY ID .


  WHILE lv_count > 0.

    LOOP AT LT_ORDER_CFGS_VALUE_ID ASSIGNING <ORDER_CFGS_VALUE_ID_LINE> WHERE ID = lv_count.
      IF <ORDER_CFGS_VALUE_ID_LINE>-NAME1     EQ 'val-author'.
        lv_val_AUTHOR = <ORDER_CFGS_VALUE_ID_LINE>-VALUE.
      ELSEIF <ORDER_CFGS_VALUE_ID_LINE>-NAME1 EQ 'val-charc'.
        lv_val_CHARC = <ORDER_CFGS_VALUE_ID_LINE>-VALUE.
      ELSEIF <ORDER_CFGS_VALUE_ID_LINE>-NAME1 EQ 'val-charc_txt'.
        lv_val_CHARC_TXT = <ORDER_CFGS_VALUE_ID_LINE>-VALUE.
      ELSEIF <ORDER_CFGS_VALUE_ID_LINE>-NAME1 EQ 'val-inst_id'.
        lv_val_INST_ID  = <ORDER_CFGS_VALUE_ID_LINE>-VALUE.
      ELSEIF <ORDER_CFGS_VALUE_ID_LINE>-NAME1 EQ 'val-value'.
        lv_val_VALUE = <ORDER_CFGS_VALUE_ID_LINE>-value.
      ELSEIF <ORDER_CFGS_VALUE_ID_LINE>-NAME1 EQ 'val-value_txt'.
        lv_val_VALUE_TXT = <ORDER_CFGS_VALUE_ID_LINE>-VALUE.
      ENDIF.
    ENDLOOP.

    APPEND INITIAL LINE TO LT_ORDER_CFGS_VALUE ASSIGNING <ORDER_CFGS_VALUE_LINE>.
    <ORDER_CFGS_VALUE_LINE>-AUTHOR       = lv_val_AUTHOR .
    <ORDER_CFGS_VALUE_LINE>-CHARC        = lv_val_CHARC.
    <ORDER_CFGS_VALUE_LINE>-CHARC_TXT    = lv_val_CHARC_TXT.
    <ORDER_CFGS_VALUE_LINE>-INST_ID      = lv_val_INST_ID.
    <ORDER_CFGS_VALUE_LINE>-VALUE        = lv_val_VALUE.
    <ORDER_CFGS_VALUE_LINE>-VALUE_TXT    = lv_val_VALUE_TXT.

    lv_count = lv_count - 1.

  ENDWHILE.


  DATA: Lt_ORDER_CFGS_PART_OF TYPE TABLE OF BAPICUPRT.
  Data: LS_ORDER_CFGS_PART_OF Type BAPICUPRT.

  LS_ORDER_CFGS_PART_OF-CONFIG_ID  = LV_INS_CONFIG_ID.
  LS_ORDER_CFGS_PART_OF-PARENT_ID  = lv_ins_INST_ID.
  LS_ORDER_CFGS_PART_OF-INST_ID    = lv_ins_INST_ID.
  LS_ORDER_CFGS_PART_OF-OBJ_TYPE   = lv_ins_obj_type.
  LS_ORDER_CFGS_PART_OF-CLASS_TYPE = lv_ins_class_type.
  LS_ORDER_CFGS_PART_OF-OBJ_KEY    = lv_ins_obj_key.
  LS_ORDER_CFGS_PART_OF-AUTHOR     = lv_ins_author.

  APPEND LS_ORDER_CFGS_PART_OF to Lt_ORDER_CFGS_PART_OF.

  DATA: LT_ORDER_ITEMS_OUT TYPE TABLE OF  BAPIITEMEX.



  LS_QUOTATION_HEADER_IN-DOC_TYPE   = 'YAG'.
  LS_QUOTATION_HEADER_IN-SALES_ORG  = 'ET01'.
  LS_QUOTATION_HEADER_IN-DISTR_CHAN = 'GV'.
  LS_QUOTATION_HEADER_IN-DIVISION   = 'TD'.
  LS_QUOTATION_HEADER_IN-SALES_OFF  = 'VBZW'.



  APPEND INITIAL LINE TO LT_QUOTATION_PARTNERS ASSIGNING <QUOTATION_PARTNERS_LINE>.
  <QUOTATION_PARTNERS_LINE>-PARTN_ROLE  = 'AG'.
  <QUOTATION_PARTNERS_LINE>-PARTN_NUMB  = '0000001019'.
*  <QUOTATION_PARTNERS_LINE>-PARTN_NUMB  = '0000882723'.


  APPEND INITIAL LINE TO LT_QUOTATION_ITEMS_IN ASSIGNING <QUOTATION_ITEMS_IN_LINE>.
  <QUOTATION_ITEMS_IN_LINE>-PO_ITM_NO   = '10'.
  <QUOTATION_ITEMS_IN_LINE>-MATERIAL    = 'A38'.
  <QUOTATION_ITEMS_IN_LINE>-PLANT       = '0020'.
  <QUOTATION_ITEMS_IN_LINE>-ITEM_CATEG  = 'AGC'.
  <QUOTATION_ITEMS_IN_LINE>-TARGET_QTY  = '1'.
  <QUOTATION_ITEMS_IN_LINE>-TARGET_QU   = 'ST'.

* Neu hinzugefügt wegen dem Auftragsmenge.

  DATA: lt_quotation_schedules_in  TYPE TABLE OF BAPISCHDL.
  FIELD-SYMBOLS <quotation_schedules_in_line>    LIKE LINE OF lt_quotation_schedules_in.

  APPEND INITIAL LINE TO lt_quotation_schedules_in ASSIGNING <quotation_schedules_in_line>.
  <quotation_schedules_in_line>-itm_number = '10'.
  <quotation_schedules_in_line>-req_qty  = '1'.

 CALL FUNCTION 'BAPI_QUOTATION_CREATEFROMDATA2'
    EXPORTING
*     SALESDOCUMENTIN          =
      QUOTATION_HEADER_IN      = LS_QUOTATION_HEADER_IN
*     QUOTATION_HEADER_INX     =
*     SENDER                   =
*     BINARY_RELATIONSHIPTYPE  = ' '
*     INT_NUMBER_ASSIGNMENT    = ' '
*     BEHAVE_WHEN_ERROR        = ' '
*     LOGIC_SWITCH             =
*     TESTRUN                  =
*     CONVERT                  = ' '
    IMPORTING
      SALESDOCUMENT            = LV_RETURN_SD_NUMBER
    TABLES
      RETURN                   = LT_MEASSAGE
      QUOTATION_ITEMS_IN       = LT_QUOTATION_ITEMS_IN
*     QUOTATION_ITEMS_INX      =
      QUOTATION_PARTNERS       = LT_QUOTATION_PARTNERS
      QUOTATION_SCHEDULES_IN   = lt_quotation_schedules_in
*     QUOTATION_SCHEDULES_INX  =
*     QUOTATION_CONDITIONS_IN  =
*     QUOTATION_CONDITIONS_INX =
      QUOTATION_CFGS_REF       = LT_QUOTATION_CFGS_REF
      QUOTATION_CFGS_INST      = LT_ORDER_CFGS_INST
      QUOTATION_CFGS_PART_OF   = LT_ORDER_CFGS_PART_OF
      QUOTATION_CFGS_VALUE     = LT_ORDER_CFGS_VALUE
*     QUOTATION_CFGS_BLOB      =
*     QUOTATION_CFGS_VK        =
*     QUOTATION_CFGS_REFINST   =
*     QUOTATION_KEYS           =
*     QUOTATION_TEXT           =
*     EXTENSIONIN              =
*     PARTNERADDRESSES         =
    .



  IF SY-SUBRC EQ '0'.

    SET UPDATE TASK LOCAL.

    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      EXPORTING
        WAIT   = 'x'
      IMPORTING
        RETURN = LS_MASSAGE_COMMIT.

    SET UPDATE TASK LOCAL.
  ENDIF.


Aus der Outbound API konnte ich zwei Werte nicht zuordnen.

1. Retcode = 1
2. CFG-KBBUILD[1] = xx

In den aufgeführten Tabellen gibt es einige Felder die laut API nicht gefüllt werden. Ob vielleicht auch hier Felder zusätzlich gefüllt werden müssen ist mir auch nicht klar.

Gruß,

Thorsten

Re: Anlage Angebot "BAPI_QUOTATION_CREATEFROMDATA2"

Beitrag von schick (ForumUser / 52 / 5 / 15 ) »
Hi,

also ich hab jetzt ehrlich gesagt nicht dein komplettes Coding überprüft, aber hier mal ein Beispiel welche Felder gefüllt sein müssen, damit die Konfigurationsdaten übergeben werden:

Code: Alles auswählen.

* CONFIG
APPEND INITIAL LINE TO lt_quotation_cfgs_ref ASSIGNING <quotation_cfgs_ref_line>.
<quotation_cfgs_ref_line>-posex         = '000010'.
<quotation_cfgs_ref_line>-config_id     = '000001'.
<quotation_cfgs_ref_line>-root_id       = '00000001'.

APPEND INITIAL LINE TO lt_order_cfgs_inst ASSIGNING <order_cfgs_inst_line>.
<order_cfgs_inst_line>-config_id       = '000001'.
<order_cfgs_inst_line>-inst_id         = '00000001'.
<order_cfgs_inst_line>-obj_type        = 'MARA'.
<order_cfgs_inst_line>-class_type      = '300'.
<order_cfgs_inst_line>-obj_key         = '12345678'.
<order_cfgs_inst_line>-quantity        = '10'.

APPEND INITIAL LINE TO lt_order_cfgs_value ASSIGNING <order_cfgs_value_line>.
<order_cfgs_value_line>-config_id    = '000001'.
<order_cfgs_value_line>-charc        = 'KUNDE'.
<order_cfgs_value_line>-inst_id      = '00000001'.
<order_cfgs_value_line>-value        = '0'.
Weitere Felder braucht man nicht unbedingt. Wichtig ist, dass zu jedem Material ALLE Merkmale mit Werten übergeben werden, ansonsten gibt es einen Fehler "CFG_IS_INCONSISTENT_OR_INCOMPLETE".
Teste am Besten mal mit einer einzigen Position und schau was nach dem BAPI-Aufruf in LT_MEASSAGE steht.

Re: Anlage Angebot "BAPI_QUOTATION_CREATEFROMDATA2"

Beitrag von carlie (ForumUser / 49 / 0 / 2 ) »
Hallo,

mochmals danke für deine Hilfe. Es war Korrekt das einige felder falsch bzw nicht gefüllt waren. Ich habe das entsprechend deinen Vorgaben angepasst. Das Problem hat sich jedoch nicht verändert. Der Kopf und die Position werden als Okay in der LT_Meassage zurück gegeben. Tabelle VBAK u. VBAP sind auch entsprechend angelegt.

Ich versuche nochmals die eingangsdaten im FUBA zu zeigen.

LS_QUOTATION_HEADER_IN:

DOC_TYPE = 'YAG'
SALES_ORG = 'ET01'
DISTR_CHAN = 'GV'
DIVISION = 'TD'
SALES_OFF = 'VBZW'

LT_QUOTATION_ITEMS_IN:

ITM_NUMBER = '000010'
PO_ITM_NO = '000010'
MATERIAL = 'A36'
PLANT = '0010'
TARGET_QTY = '1.000'
TARGET_QU = 'ST'
ITEM_CATEG = 'AGC'

LT_QUOTATION_PARTNERS:

PARTN_ROLE = 'AG'
PARTN_NUMB = '0000001019'

LT_QUOTATION_SCHEDULES_IN:

ITM_NUMBER = '000010'
REQ_QTY = '1.000'

LT_QUOTATION_CFGS_REF:

POSEX = '000010'
CONFIG_ID = '000001'
ROOT_ID = '00000001'
KBNAME = 'A36_WEB'
KBVERSION = '17.3'
COMPLETE = 'T'
CONSISTENT = 'T'
CFGINFO ='VCOND=Z_O_SDCOM_VKOND'
KBPROFILE = 'WEB-KONFIG A36'
KBLANGUAGE = 'D'

LT_ORDER_CFGS_INST:

CONFIG_ID = '000001'
INST_ID = '00000001'
OBJ_TYPE = 'MARA'
CLASS_TYPE = '300'
OBJ_KEY = 'A36'
OBJ_TXT = '004B00'
QUANTITY = '1.0'
AUTOR = '5'
QUANTITY_UNIT = 'ST'
COMPLETE = 'T'
CONSISTENR = 'T'

LT_ORDER_CFGS_PART_OF:

CONFIG_ID = '000001'
PARENT_ID = '00000001'
INST_ID = '00000001'
OBJ_TYPE = 'MARA'
CLASS_TYPE = '300'
OBJ_KEY = 'A36'
AUTOR = '5'

LT_ORDER_CFGS_VALUE:

CONFIG_ID = '000001'
INST_ID = '00000001'
CHARC = 'A36_RAUPEN'
CHARC_TXT = '0041006E00740072006900650062002000520061007500700065006E'
VALUE = '36203012'
VALUE_TXT = '0042006F00640065006E0070006C0061007400740065006E0020003100350030003000'

Ich bekomme in LT_MEASSAGE die meldung das "SALES_HEADER_IN; SALES_ITEM_IN; SALES_SCHEDULES_IN" erfolgreich verarbeitet wurden (siehe Bild).

Entweder gebe ich an irgend einer Stelle nicht alle Daten mit oder es gibt vielleicht ein Problem mit den Führenden Nullen.
Ist es richtig das bei PARENT_IT, ROOT_ID usw. immer "000001" angegeben wird. Es gibt ja in der Konfig. Root, Parent u. Self. Ich habe generell schon einiges getestet, aber der große wurf ist mir noch nicht gelungen.

Würde mich weiter über Hilfe freuen.

Viele Grüße,

Thorsten

Re: Anlage Angebot "BAPI_QUOTATION_CREATEFROMDATA2"

Beitrag von schick (ForumUser / 52 / 5 / 15 ) »
Hi,

versuch mal die Tabelle LT_ORDER_CFGS_PART_OF wegzulassen, die brauchst du glaube ich nicht.
Danach würde ich versuchen mal nur wirklich benötigte Felder zu übergeben (z.B. keine Texte) und bei Feldern wie Menge nochmal genau gucken welches Format da erwartet wird (führende Nullen, Trennzeichen, etc.).

Re: Anlage Angebot "BAPI_QUOTATION_CREATEFROMDATA2"

Beitrag von carlie (ForumUser / 49 / 0 / 2 ) »
Hi,

in der FUBA Duku gibt sap an das folgende Tabellen mitgegeben werden müssen. Deswegen habe ich auch von anfang an diese Tabelle berücksichtigt.

" Wenn es sich um konfigurierbare Positionen handelt, müssen Sie die
Konfigurationsdaten in den Tabellen QUOTATION_CFGS_REF,
QUOTATION_CFGS_INST, QUOTATION_CFGS_PART_OF und QUOTATION_CFGS_VALUE
mitgeben."

Ich werde jedoch deine Tipps nochmals testen. Mit den Führenden nullen habe ich so meine Probleme. Kannst du mir bitte erklären, wie ich das herausfinden kann welche Felder die führenden Nullen benötigt. ich bin was das Thema angeht sozusagen anfänger.

Gruß,

Thorsten

Re: Anlage Angebot "BAPI_QUOTATION_CREATEFROMDATA2"

Beitrag von carlie (ForumUser / 49 / 0 / 2 ) »
Hallo,

ich hatte mich gestern den Kpl. tag mit der fehlersuche beschäftigt. Leider ohne erfolg. Heute morgen habe ich nun weiter nach dem fehler gesucht. Nachdem ich nun folgendes Feld in der Tabelle "LT_QUOTATION_ITEMS_IN" nicht befülle läuft der BAPI.

Code: Alles auswählen.

*  <QUOTATION_ITEMS_IN_LINE>-TARGET_QTY  = '1'.


Die Konfiguration inklusive Preise wird jetzt angelegt. Auf jeden fall nochmals danke für die Hilfe.

Gruß,

Thorsten

Seite 1 von 1

Vergleichbare Themen

2
Antw.
3024
Views
Benutzung BAPI zur anlage Angebot
von carlie » 29.03.2018 13:02 • Verfasst in Sales and Distribution
7
Antw.
5455
Views
BAPI Businesspartner / Rollen-Anlage
von littleJohn » 02.06.2022 13:20 • Verfasst in SAP HANA für Anfänger
1
Antw.
3744
Views
BAPI für Anlage Ansprechpartner zum Debitor
von linde1000 » 20.09.2006 16:09 • Verfasst in ABAP® Core
2
Antw.
5956
Views
Anlage Konditionen für Einkaufsinfosätze via FB/BAPI
von JetGum » 28.03.2008 10:58 • Verfasst in ABAP® Core
1
Antw.
1170
Views
Anlage ändern über BAPI
von Rabea1103 » 30.05.2024 10:48 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 1618
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8222