2009 Feb 05 3:03 PM
Hi experts,
I need to change the value of one characteristic (type CHAR) during Batch creation (transaction MSC1N).
Searching in the program, I have found that FM VB_CREATE_BATCH is called. Inside the FM, I have found also the CUSTOMER-FUNCTION '014' (EXIT_SAPLV01Z_014), which it seems to be the only exit that allows to change the values of the characteristic.
My questions are:
- does anybody know how this exit works? I mean, how I have to manipulate the TABLES to get modified the value of the characteristic that I need to change?
- does anybody know any other way to change the value of the characteristic at batch creation?
Thank you very much in advance!
2009 Feb 06 6:14 AM
2009 Feb 06 6:14 AM
2009 Feb 06 8:26 AM
Hi Rajeev,
I knew this thread, but I have to modify the batch during creation, not after. That's why the BAPI_BATCH_CHANGE is not useful for me.
I need to modify the Batch during creation, neverthless the transaction, it could be with MSC1N or at production order creation, for example.
I have activated also the exit 12 of the same enhancement EXIT_SAPLV01Z_012 which is needed and passed the correct (I think) values.
During the execution, the program executes the EXIT_SAPLV01Z_014 ( I have seen it by debugging) but the characteristics remains unchanged.
I don't know what more I have to do.
Thanks,
Onofre
2009 Feb 06 9:57 AM
Hi,
Try the Function Exit EXIT_SAPLV01Z_013 and see if it helps.
The documentation of the Function Exit says:
EXIT_SAPLV01Z_013. You can use this exit to assign characteristic
values to the batch master record of the new batch.
Functionality
You can influence the new batch master record in the structure
BATCH_MASTER_DATA.
In the parameter BATCH_VALUATION_TYPE, you can specify the type of batch
valuation, if the material is valued separately.
See if this helps.
Regards,
Abhisek.
2009 Feb 06 10:19 AM
Hi Abhisek,
Thanks for your help. I would try the 013, but we have the batches defined independently of werks, so the data is in MCH1 rather in MCHA, so the field BWTAR has no sense for us.
Regards,
Onofre
2009 Feb 06 10:28 AM
Hi Onofre,
If this too does not help then you could search for a suitable Implicit Enhancement Point/Enhancment Point/Enhancement Section in the calling program and change the requisite field there.
Check in debug mode where the control is returned after calling EXIT_SAPLV01Z_014. Seacrh for a suitable Implicit Enhancement Point/Enhancment Point/Enhancement Section in that code and change the field value.
Or you could also use field symbols to change the field value.
For further details as to "How to use Field symbols to change values in standard code?", please refer to the link:
[https://www.sdn.sap.com/irj/scn/profile?userid=3766309]
Hope the above information helps.
Regards,
Abhisek.
2009 Feb 06 10:32 AM
Thanks Abhisek.
I am thinking also in Implicit Enhancement Point, but I find that maybe the consistency of the characteristic would be impacted. For example, I would use the bapi_batch_change from an enhancement point, but the batch is loked and I can not modify it.
I have found several suitable enhancementes but I really don't see how to modify the values without impacting the consistency.
Regards,
Onofre
2009 Feb 06 11:53 AM
Hi Onofre,
If you can mention the program name and section of the code in question, then I could try and suggest some that might prove helpful to you.
Regards,
Abhisek.
2009 Feb 06 11:59 AM
Yes, in the FM VB_CREATE_BATCH, include LV01ZF04 you can find the call to the CALL CUSTOMER-FUNCTION '014', which correspond with the EXIT_SAPLV01Z_014. In that part of coding there are several enhancements, and I think that it's the correct point.
Thanks and best regards,
Onofre
2009 Feb 06 12:12 PM
Hi Onfore,
In the Function Module VB_CREATE_BATCH, just before CALL CUSTOMER-FUNCTION '013'
there is a piece of code:
*** internal BADI
TRY.
GET BADI g_badi_batch_data_change_int.
CALL BADI g_badi_batch_data_change_int->change_batch_data
EXPORTING
is_bncom = x_bncom
iv_ref_material = ref_matnr
iv_ref_batch = ref_charg
iv_ref_plant = ref_werks
CHANGING
cs_mcha = ymcha.
CATCH cx_badi_not_implemented.
ENDTRY.
***
The above piece of code refers to Standard Implementation of BADI BADI_BATCH_DATA_CHANGE_INT. Insidethe method CHANGE_BATCH_DATA of the implementation there is an Implicit Enhancement Point at the end of the method just before the statement ENDMETHOD.
I think this is the best place to write your requisite pice of code as the changing parameter of the method contains a structure of type MCHA.
But please check in debug mode if any better suitable Enhancement Point/Section exists.
Hope the above information helps.
Regards,
Abhisek.
2009 Feb 06 1:40 PM
Hi Abhisek,
I really appreciate your help. Anyway, the interface of the suggested BAdI doesn't contain the values of the characteristics. I need to change the characteristic value during the creation of the batch, so I am afraid that this BAdI would not be useful for me.
Thanks and best regards,
Onofre
2009 Feb 09 8:41 AM
Hello!
Look at this exits:
CLFM0001
CLFM0002
BADI:
BATCH_MASTER method CHECK_CLASSIF_BEFORE_SAVE
2009 Feb 09 1:56 PM
Hi Andrey,
I'm afraid that your proposal wouldn't work also.
The BAdI you suggested it's a check BAdI, you can only check the values, but you can not change them, and I need to change the values.
The other two user exits are triggered in other process diferent from batch creation via Production Order.
Thanks anyway,
Onofre
2009 Oct 10 6:58 AM
Hi Onofre,
have solved? I have the same problem. you would have some useful info for me?
I have to change the value of a characteristic during good movement 101 from production order
many
thanks!!!
2010 Mar 15 6:01 AM