on ‎2006 Mar 13 7:15 PM
I am using BAPI_BATCH_CREATE to create batches .
i tried via SE37 it is working fine but when i tried it through my program though the parameters are same ..it is not creating batches..
can anybody help..
Request clarification before answering.
Check if the material number and batch number are in internal format.
Check if you are issuing a commit using BAPI_TRANSACION_COMMIT after the call.
Srinivas
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hope you are calling BAPI_TRANSACTION_COMMIT as well. Otherwise Batches will not be created.
Regards,
Siva
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Here is a sample code for the use of this BAPI. Check if this helps -
----
Report ZTESTBAPI *
This is a dummy program designed to show how to create a batch and *
then apply/change characteristics via BAPI control. *
----
REPORT ztestbapi.
TABLES: klah, ksml, cabn.
holds data for charcateristics with type NUM
DATA: BEGIN OF numtab OCCURS 0.
INCLUDE STRUCTURE bapi1003_alloc_values_num.
DATA: END OF numtab.
holds data for charcateristics with type CHAR/DATE
DATA: BEGIN OF chatab OCCURS 0.
INCLUDE STRUCTURE bapi1003_alloc_values_char.
DATA: END OF chatab.
holds data for charcateristics with type CURR
DATA: BEGIN OF curtab OCCURS 0.
INCLUDE STRUCTURE bapi1003_alloc_values_curr.
DATA: END OF curtab.
Error return table
DATA: BEGIN OF rettab OCCURS 0.
INCLUDE STRUCTURE bapiret2.
DATA: END OF rettab.
DATA: BEGIN OF it_ksml OCCURS 0.
INCLUDE STRUCTURE ksml.
DATA: END OF it_ksml.
characteristic names
DATA: BEGIN OF it_cabn OCCURS 0,
atinn LIKE cabn-atinn,
atnam LIKE cabn-atnam,
atfor LIKE cabn-atfor,
END OF it_cabn.
DATA: BEGIN OF it_object OCCURS 0.
INCLUDE STRUCTURE bapi1003_object_keys.
DATA: END OF it_object.
example of an object key 00000000000730000007505847897897
DATA: w_object LIKE bapi1003_key-object.
Change these defaults to suit your system
PARAMETERS: p_matnr LIKE mara-matnr OBLIGATORY DEFAULT '7300000',
p_werks LIKE t001w-werks OBLIGATORY DEFAULT '0750',
p_charg LIKE mcha-charg OBLIGATORY DEFAULT '5847897898',
p_lgort LIKE dfbatch-lgort OBLIGATORY DEFAULT '1000',
p_klart LIKE klah-klart OBLIGATORY DEFAULT '022',
p_class LIKE klah-class OBLIGATORY DEFAULT 'RETREAD'.
INITIALIZATION.
PERFORM get_characteristics.
START-OF-SELECTION.
PERFORM create_batch.
PERFORM bapi_commit.
PERFORM build_object_key.
PERFORM extract_original_batch.
END-OF-SELECTION.
PERFORM update_original_batch.
PERFORM bapi_commit.
----
FORM get_characteristics *
----
FORM get_characteristics.
extract the characteristic names for KLART/CLASS
CLEAR: klah, ksml, it_cabn.
REFRESH it_cabn.
SELECT SINGLE clint FROM klah
INTO CORRESPONDING FIELDS OF klah
WHERE klart = p_klart
AND class = p_class.
IF syst-subrc = 0.
SELECT * FROM ksml
INTO CORRESPONDING FIELDS OF ksml
WHERE clint = klah-clint.
SELECT SINGLE * FROM cabn
INTO CORRESPONDING FIELDS OF cabn
WHERE atinn = ksml-imerk.
IF syst-subrc = 0.
it_cabn-atinn = cabn-atinn.
it_cabn-atnam = cabn-atnam.
it_cabn-atfor = cabn-atfor.
APPEND it_cabn.
ENDIF.
ENDSELECT.
ENDIF.
ENDFORM.
----
FORM create_batch *
----
FORM create_batch.
CLEAR: rettab.
REFRESH: rettab.
create the batch using screen values, you will most likely have to
determine the next batch number from the number range.
CALL FUNCTION 'BAPI_BATCH_CREATE'
EXPORTING
material = p_matnr
batch = p_charg
plant = p_werks
batchstoragelocation = p_lgort
TABLES
return = rettab.
ENDFORM.
----
FORM build_object_key *
----
FORM build_object_key.
build the object key
CLEAR: it_object, rettab.
REFRESH: it_object, rettab.
it_object-key_field = 'MATNR'.
it_object-value_int = p_matnr.
APPEND it_object.
it_object-key_field = 'WERKS'.
it_object-value_int = p_werks.
APPEND it_object.
it_object-key_field = 'CHARG'.
it_object-value_int = p_charg.
APPEND it_object.
CALL FUNCTION 'BAPI_OBJCL_CONCATENATEKEY'
EXPORTING
objecttable = 'MCHA'
IMPORTING
objectkey_conc = w_object
TABLES
objectkeytable = it_object
return = rettab.
ENDFORM.
----
FORM extract_original_batch *
----
FORM extract_original_batch.
extract the original characteristic data if exists
CLEAR: numtab, chatab, curtab, rettab.
REFRESH: numtab, chatab, curtab, rettab.
CALL FUNCTION 'BAPI_OBJCL_GETDETAIL'
EXPORTING
objectkey = w_object
objecttable = 'MCHA'
classnum = p_class
classtype = p_klart
TABLES
allocvaluesnum = numtab
allocvalueschar = chatab
allocvaluescurr = curtab
return = rettab.
ENDFORM.
----
FORM update_original_batch *
----
FORM update_original_batch.
Below are some examples of characteristics to update, obviously you
would change these to match the ones in your system
ATNAM is the characteristic name.
find characteristic format in it_cabn and call update routine
READ TABLE it_cabn WITH KEY atnam = 'TREAD'.
PERFORM update_table USING it_cabn-atfor it_cabn-atnam 'HW203'.
READ TABLE it_cabn WITH KEY atnam = 'ORRETREAD'.
PERFORM update_table USING it_cabn-atfor it_cabn-atnam '11225HW203C'.
READ TABLE it_cabn WITH KEY atnam = 'CASINGCODE'.
PERFORM update_table USING it_cabn-atfor it_cabn-atnam '7100044'.
READ TABLE it_cabn WITH KEY atnam = 'CASINGSTATUS'.
PERFORM update_table USING it_cabn-atfor it_cabn-atnam 'CUSTOMER'.
READ TABLE it_cabn WITH KEY atnam = 'CASEVAL'.
PERFORM update_table USING it_cabn-atfor it_cabn-atnam '0'.
READ TABLE it_cabn WITH KEY atnam = 'CUSTOMER'.
PERFORM update_table USING it_cabn-atfor it_cabn-atnam '0276933500'.
READ TABLE it_cabn WITH KEY atnam = 'FROMLOC'.
PERFORM update_table USING it_cabn-atfor it_cabn-atnam '0584'.
READ TABLE it_cabn WITH KEY atnam = 'BRAND'.
PERFORM update_table USING it_cabn-atfor it_cabn-atnam 'BRI'.
READ TABLE it_cabn WITH KEY atnam = 'NOCAPS'.
PERFORM update_table USING it_cabn-atfor it_cabn-atnam '1'.
READ TABLE it_cabn WITH KEY atnam = 'RETURNLOC'.
PERFORM update_table USING it_cabn-atfor it_cabn-atnam '0584'.
READ TABLE it_cabn WITH KEY atnam = 'RECDATE'.
PERFORM update_table USING it_cabn-atfor it_cabn-atnam '26.07.2004'.
READ TABLE it_cabn WITH KEY atnam = 'SENTDATE'.
PERFORM update_table USING it_cabn-atfor it_cabn-atnam '26.07.2004'.
READ TABLE it_cabn WITH KEY atnam = 'FLOC'.
PERFORM update_table USING it_cabn-atfor it_cabn-atnam '0750'.
READ TABLE it_cabn WITH KEY atnam = 'AUTOCLAVE'.
PERFORM update_table USING it_cabn-atfor it_cabn-atnam '4'.
READ TABLE it_cabn WITH KEY atnam = 'REPAIRCODE'.
PERFORM update_table USING it_cabn-atfor it_cabn-atnam 'MINOR'.
perform the update
PERFORM bapi_change.
ENDFORM.
----
FORM update_table *
----
FORM update_table USING atfor atnam value.
depending on data format, start building the characteristics table
ready for update
CASE atfor.
WHEN 'NUM'.
READ TABLE numtab WITH KEY charact = atnam.
IF syst-subrc = 0.
numtab-value_from = value.
MODIFY numtab INDEX syst-tabix.
ELSE.
numtab-charact = atnam.
numtab-value_from = value.
APPEND numtab.
ENDIF.
WHEN 'CURR'.
WHEN 'CHAR' OR 'DATE'.
READ TABLE chatab WITH KEY charact = atnam.
IF syst-subrc = 0.
chatab-value_neutral = value.
MODIFY chatab INDEX syst-tabix.
ELSE.
chatab-charact = atnam.
chatab-value_neutral = value.
APPEND chatab.
ENDIF.
ENDCASE.
ENDFORM.
----
FORM bapi_change *
----
FORM bapi_change.
Apply the characteristics to the batch.
CALL FUNCTION 'BAPI_OBJCL_CHANGE'
EXPORTING
objectkey = w_object
objecttable = 'MCHA'
classnum = p_class
classtype = p_klart
TABLES
allocvaluesnumnew = numtab
allocvaluescharnew = chatab
allocvaluescurrnew = curtab
return = rettab.
ENDFORM.
----
FORM bapi_commit *
----
FORM bapi_commit.
commit the changes
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
ENDFORM.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
| User | Count |
|---|---|
| 8 | |
| 5 | |
| 4 | |
| 4 | |
| 3 | |
| 3 | |
| 2 | |
| 2 | |
| 2 | |
| 2 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.