09-14-2006 9:56 AM
Hey,
Did anyone manage to get this BAPI to work?
As import parameters the BAPI has only a PARTNER and a CONTRACTACCOUNT. But to do a MOVEIN, you also need an INSTALLATION.
In the table parameters, there is a table TCONTRACTDATA with a field for the installation. But in the corresponding TCONTRACTDATAX the field installation is missing.
When I use this field anyway. The BAPI returns an error message: define an installation.
Can anyone help me to do a MOVEIN with this BAPI.
Thanks in advance
Steven
02-09-2007 5:38 PM
Here is a test function module I developed. As you will see, there is a flag to set the installation.
FUNCTION zjs_create_movein_with_bapi.
*"----------------------------------------------------------------------
*"*"Local interface:
*" IMPORTING
*" REFERENCE(PARTNER) TYPE BUT000-PARTNER
*" REFERENCE(VKONT) TYPE FKKVKP-VKONT OPTIONAL
*" REFERENCE(ANLAGE) TYPE EANL-ANLAGE
*" REFERENCE(MIDATE) TYPE EVER-EINZDAT DEFAULT SY-DATUM
*" REFERENCE(REF_MIDOC) TYPE EEIN-EINZBELEG OPTIONAL
*" EXPORTING
*" REFERENCE(MIDOC_NUMBER) TYPE EEIN-EINZBELEG
*" TABLES
*" IT_MESSAGES STRUCTURE BAPIRET2
*"----------------------------------------------------------------------
DATA:
i_micontrol TYPE bapiisumoveincr_c,
i_miinputdata TYPE bapiisumoveincr_i,
i_contract TYPE bapiisucontract OCCURS 0 WITH HEADER LINE,
i_contract_x TYPE bapiisucontractx OCCURS 0 WITH HEADER LINE,
cadata TYPE bapiisuvkp,
cadata_x TYPE bapiisuvkpx,
exten TYPE bapiparex OCCURS 0 WITH HEADER LINE,
w_msg type bapiret2.
* If contract account number not imported, set flag to create CA. Either
* contract account or reference move in document must be imported.
if vkont is initial. "contract account not imported
if ref_midoc is initial. "reference MI doc not imported
w_msg-type = 'E'.
w_msg-message = 'Must import vkont or ref_midoc.'.
append w_msg to it_messages.
exit.
else.
i_micontrol-contractaccountcreate = 'X'. "Create contract acct
endif.
else. "set imported contract account
i_miinputdata-cont_acct = vkont.
endif.
i_micontrol-partnerstdaddradjustx = 'X'.
i_miinputdata-moveindate = midate.
i_miinputdata-partner = partner.
i_miinputdata-acct_cat = '01'.
* Set installation
i_contract-installation = anlage.
APPEND i_contract.
i_contract_x-installation = 'X'.
APPEND i_contract_x.
* This FM prepares the data structures for creating the Move In
CALL FUNCTION 'ISU_MOVE_IN_BAPI_GET_DEFAULTS'
EXPORTING
x_refmidoc = ref_midoc
moveincreatecontroldata = i_micontrol
TABLES
treturn = it_messages
tcontractdata = i_contract
tcontractdatax = i_contract_x
extensionin = exten
CHANGING
moveincreateinputdata = i_miinputdata
contractaccountdata = cadata
contractaccountdatax = cadata_x.
* Get out if function call unsuccessful.
check sy-subrc = 0.
*Create Move In document
CALL FUNCTION 'BAPI_ISUMOVEIN_CREATEFROMDATA'
EXPORTING
moveincreatecontroldata = i_micontrol
moveincreateinputdata = i_miinputdata
contractaccountdata = cadata
contractaccountdatax = cadata_x
IMPORTING
moveindocnumber = MIDOC_NUMBER
TABLES
treturn = it_messages
tcontractdata = i_contract
tcontractdatax = i_contract_x
extensionin = exten.
* Get out if function call unsuccessful.
check sy-subrc = 0.
CALL FUNCTION 'ABAP4_COMMIT_WORK'.
ENDFUNCTION.
02-09-2007 5:38 PM
Here is a test function module I developed. As you will see, there is a flag to set the installation.
FUNCTION zjs_create_movein_with_bapi.
*"----------------------------------------------------------------------
*"*"Local interface:
*" IMPORTING
*" REFERENCE(PARTNER) TYPE BUT000-PARTNER
*" REFERENCE(VKONT) TYPE FKKVKP-VKONT OPTIONAL
*" REFERENCE(ANLAGE) TYPE EANL-ANLAGE
*" REFERENCE(MIDATE) TYPE EVER-EINZDAT DEFAULT SY-DATUM
*" REFERENCE(REF_MIDOC) TYPE EEIN-EINZBELEG OPTIONAL
*" EXPORTING
*" REFERENCE(MIDOC_NUMBER) TYPE EEIN-EINZBELEG
*" TABLES
*" IT_MESSAGES STRUCTURE BAPIRET2
*"----------------------------------------------------------------------
DATA:
i_micontrol TYPE bapiisumoveincr_c,
i_miinputdata TYPE bapiisumoveincr_i,
i_contract TYPE bapiisucontract OCCURS 0 WITH HEADER LINE,
i_contract_x TYPE bapiisucontractx OCCURS 0 WITH HEADER LINE,
cadata TYPE bapiisuvkp,
cadata_x TYPE bapiisuvkpx,
exten TYPE bapiparex OCCURS 0 WITH HEADER LINE,
w_msg type bapiret2.
* If contract account number not imported, set flag to create CA. Either
* contract account or reference move in document must be imported.
if vkont is initial. "contract account not imported
if ref_midoc is initial. "reference MI doc not imported
w_msg-type = 'E'.
w_msg-message = 'Must import vkont or ref_midoc.'.
append w_msg to it_messages.
exit.
else.
i_micontrol-contractaccountcreate = 'X'. "Create contract acct
endif.
else. "set imported contract account
i_miinputdata-cont_acct = vkont.
endif.
i_micontrol-partnerstdaddradjustx = 'X'.
i_miinputdata-moveindate = midate.
i_miinputdata-partner = partner.
i_miinputdata-acct_cat = '01'.
* Set installation
i_contract-installation = anlage.
APPEND i_contract.
i_contract_x-installation = 'X'.
APPEND i_contract_x.
* This FM prepares the data structures for creating the Move In
CALL FUNCTION 'ISU_MOVE_IN_BAPI_GET_DEFAULTS'
EXPORTING
x_refmidoc = ref_midoc
moveincreatecontroldata = i_micontrol
TABLES
treturn = it_messages
tcontractdata = i_contract
tcontractdatax = i_contract_x
extensionin = exten
CHANGING
moveincreateinputdata = i_miinputdata
contractaccountdata = cadata
contractaccountdatax = cadata_x.
* Get out if function call unsuccessful.
check sy-subrc = 0.
*Create Move In document
CALL FUNCTION 'BAPI_ISUMOVEIN_CREATEFROMDATA'
EXPORTING
moveincreatecontroldata = i_micontrol
moveincreateinputdata = i_miinputdata
contractaccountdata = cadata
contractaccountdatax = cadata_x
IMPORTING
moveindocnumber = MIDOC_NUMBER
TABLES
treturn = it_messages
tcontractdata = i_contract
tcontractdatax = i_contract_x
extensionin = exten.
* Get out if function call unsuccessful.
check sy-subrc = 0.
CALL FUNCTION 'ABAP4_COMMIT_WORK'.
ENDFUNCTION.