Ir al contenido

BAPI_0050_CREATE

Respuestas
2
Visitas
13
Iniciado por
camaron
Fecha
02 Abr 2008, 17:28
Tema anterior - Siguiente tema

camaron

Hola gente:
quiero que me den una ayudadita con la BAPI_0050_CREATE para la creacion de documentos en la transaccion FMBB si hay alguien que halla utilizado esta bapi por favor expliqueme gracias aigos

oscar

He visto este ejemplo en el SDN.

Si te puede servir de ayuda para ver como rellena los datos...


REPORT ztest LINE-SIZE 80 NO STANDARD PAGE HEADING MESSAGE-ID 00.

DATA: BEGIN OF header.
        INCLUDE STRUCTURE bapi_0050_header.
DATA: END OF header.

DATA: BEGIN OF item OCCURS 0.
        INCLUDE STRUCTURE bapi_0050_item.
DATA: END OF item.

DATA: BEGIN OF sender OCCURS 0.
        INCLUDE STRUCTURE bapi_0050_item.
DATA: END OF sender.

DATA: BEGIN OF period OCCURS 0.
        INCLUDE STRUCTURE bapi_0050_period.
DATA: END OF period.

DATA: BEGIN OF period_sender OCCURS 0.
        INCLUDE STRUCTURE bapi_0050_period.
DATA: END OF period_sender.

DATA: BEGIN OF return OCCURS 0.
        INCLUDE STRUCTURE bapiret2.
DATA: END OF return.

DATA: poper(3) TYPE n,

start-of-selection.

PERFORM update_using_bapi .

*&---------------------------------------------------------------------
*& Form update_using_bapi
*&---------------------------------------------------------------------
*   text
*----------------------------------------------------------------------
FORM update_using_bapi .

  PERFORM get_current_period.
  PERFORM fill_header.
  PERFORM fill_item.
  PERFORM fill_sender.
  PERFORM fill_period.
  PERFORM save_doc.

ENDFORM. " update_using_bapi

*&---------------------------------------------------------------------
*& Form fill_header
*---------------------------------------------------------------------
FORM fill_header .

  REFRESH: item,
  period.

  MOVE sy-datum TO : header-docdate.

  header-fm_area = 'COCD'.
  header-version = '000'.
  header-docstate = '1'.
  header-doctype = '1'.
  header-process = 'TRAN'.
  header-doctype = 'TRAN'.

ENDFORM. " fill_header

*&---------------------------------------------------------------------
*& Form fill_sender
*&---------------------------------------------------------------------
FORM fill_sender.

  sender-item_num = 1.
  sender-fisc_year = '2007'.
  sender-budcat = '9F'.

  sender-budtype = 'TSFS'.

  sender-distkey = '0'.

  sender-fund = '300002'.
  sender-funds_ctr = '101165'.
  sender-cmmt_item = 'CITEM'.
  sender-trans_curr = 'CAD'.
  sender-total_amount = '123.45'.
  sender-valtype = 'B1'.

  APPEND sender.

ENDFORM. " fill_sender

*&---------------------------------------------------------------------
*& Form fill_item
*&---------------------------------------------------------------------
FORM fill_item .


  item-item_num = 2.
  item-fisc_year = '2007'.
  item-budcat = '9F'.

  item-budtype = 'TSFR'.

  item-distkey = '0'.

  item-fund = '300002'.
  item-funds_ctr = '100653'.
  item-cmmt_item = 'CITEM'.
  item-trans_curr = 'CAD'.
  item-total_amount = '123.45'.
  item-valtype = 'B1'.

  APPEND item.

ENDFORM. " fill_item

*&---------------------------------------------------------------------
*& Form save_doc
*&---------------------------------------------------------------------
FORM save_doc .

  DATA: do_commit,
  first VALUE 'X'.

  CLEAR return.
  REFRESH return.

  CALL FUNCTION 'BAPI_0050_CREATE'
    EXPORTING
      language           = 'E'
      header_data        = header
      testrun            = 'X'
    TABLES
      item_data          = item
      sender_item_data   = sender
      sender_period_data = period_sender
      period_data        = period
      return             = return.

  CLEAR return.
  REFRESH return.
  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    IMPORTING
      return = return.

ENDFORM. " save_doc

*&---------------------------------------------------------------------
*& Form fill_period
*&---------------------------------------------------------------------
*       text
*----------------------------------------------------------------------
FORM fill_period .

  period-item_num = 1.
  period-budgeting_period = poper.
  period-period_amount = '123.45'.
  APPEND period.

  period_sender-item_num = 1.
  period_sender-budgeting_period = poper.
  period_sender-period_amount = '123.45'.
  APPEND period_sender.

ENDFORM. " fill_period

*&---------------------------------------------------------------------
*& Form get_current_period
*&---------------------------------------------------------------------
*      text
*----------------------------------------------------------------------
FORM get_current_period .

  CALL FUNCTION 'DATE_TO_PERIOD_CONVERT'
    EXPORTING
      i_date  = sy-datum
      i_periv = 'VA'
    IMPORTING
      e_buper = poper.

ENDFORM. " get_current_period



Un saludo.

camaron

MUchas Gracias, lo probare
Saludo2


Cita de: oscar en 03 Abr 2008, 13:43
He visto este ejemplo en el SDN.

Si te puede servir de ayuda para ver como rellena los datos...


REPORT ztest LINE-SIZE 80 NO STANDARD PAGE HEADING MESSAGE-ID 00.

DATA: BEGIN OF header.
        INCLUDE STRUCTURE bapi_0050_header.
DATA: END OF header.

DATA: BEGIN OF item OCCURS 0.
        INCLUDE STRUCTURE bapi_0050_item.
DATA: END OF item.

DATA: BEGIN OF sender OCCURS 0.
        INCLUDE STRUCTURE bapi_0050_item.
DATA: END OF sender.

DATA: BEGIN OF period OCCURS 0.
        INCLUDE STRUCTURE bapi_0050_period.
DATA: END OF period.

DATA: BEGIN OF period_sender OCCURS 0.
        INCLUDE STRUCTURE bapi_0050_period.
DATA: END OF period_sender.

DATA: BEGIN OF return OCCURS 0.
        INCLUDE STRUCTURE bapiret2.
DATA: END OF return.

DATA: poper(3) TYPE n,

start-of-selection.

PERFORM update_using_bapi .

*&---------------------------------------------------------------------
*& Form update_using_bapi
*&---------------------------------------------------------------------
*   text
*----------------------------------------------------------------------
FORM update_using_bapi .

  PERFORM get_current_period.
  PERFORM fill_header.
  PERFORM fill_item.
  PERFORM fill_sender.
  PERFORM fill_period.
  PERFORM save_doc.

ENDFORM. " update_using_bapi

*&---------------------------------------------------------------------
*& Form fill_header
*---------------------------------------------------------------------
FORM fill_header .

  REFRESH: item,
  period.

  MOVE sy-datum TO : header-docdate.

  header-fm_area = 'COCD'.
  header-version = '000'.
  header-docstate = '1'.
  header-doctype = '1'.
  header-process = 'TRAN'.
  header-doctype = 'TRAN'.

ENDFORM. " fill_header

*&---------------------------------------------------------------------
*& Form fill_sender
*&---------------------------------------------------------------------
FORM fill_sender.

  sender-item_num = 1.
  sender-fisc_year = '2007'.
  sender-budcat = '9F'.

  sender-budtype = 'TSFS'.

  sender-distkey = '0'.

  sender-fund = '300002'.
  sender-funds_ctr = '101165'.
  sender-cmmt_item = 'CITEM'.
  sender-trans_curr = 'CAD'.
  sender-total_amount = '123.45'.
  sender-valtype = 'B1'.

  APPEND sender.

ENDFORM. " fill_sender

*&---------------------------------------------------------------------
*& Form fill_item
*&---------------------------------------------------------------------
FORM fill_item .


  item-item_num = 2.
  item-fisc_year = '2007'.
  item-budcat = '9F'.

  item-budtype = 'TSFR'.

  item-distkey = '0'.

  item-fund = '300002'.
  item-funds_ctr = '100653'.
  item-cmmt_item = 'CITEM'.
  item-trans_curr = 'CAD'.
  item-total_amount = '123.45'.
  item-valtype = 'B1'.

  APPEND item.

ENDFORM. " fill_item

*&---------------------------------------------------------------------
*& Form save_doc
*&---------------------------------------------------------------------
FORM save_doc .

  DATA: do_commit,
  first VALUE 'X'.

  CLEAR return.
  REFRESH return.

  CALL FUNCTION 'BAPI_0050_CREATE'
    EXPORTING
      language           = 'E'
      header_data        = header
      testrun            = 'X'
    TABLES
      item_data          = item
      sender_item_data   = sender
      sender_period_data = period_sender
      period_data        = period
      return             = return.

  CLEAR return.
  REFRESH return.
  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    IMPORTING
      return = return.

ENDFORM. " save_doc

*&---------------------------------------------------------------------
*& Form fill_period
*&---------------------------------------------------------------------
*       text
*----------------------------------------------------------------------
FORM fill_period .

  period-item_num = 1.
  period-budgeting_period = poper.
  period-period_amount = '123.45'.
  APPEND period.

  period_sender-item_num = 1.
  period_sender-budgeting_period = poper.
  period_sender-period_amount = '123.45'.
  APPEND period_sender.

ENDFORM. " fill_period

*&---------------------------------------------------------------------
*& Form get_current_period
*&---------------------------------------------------------------------
*      text
*----------------------------------------------------------------------
FORM get_current_period .

  CALL FUNCTION 'DATE_TO_PERIOD_CONVERT'
    EXPORTING
      i_date  = sy-datum
      i_periv = 'VA'
    IMPORTING
      e_buper = poper.

ENDFORM. " get_current_period



Un saludo.