Material Return/Scrap Material from production generate inspection lot
Hi experts,
I would like to confirg the following:
When material return or scrapped material return from production(mvnt type 262), system is required to generate inspection lot.
How can I config this scenario?
Thanks!
Regards,
Daniel
The inspection lot origin '05' is assigned to movement type '262'.
(You can check this in update control at transaction OMJJ.)
So you have to activate the inspection type '05' or new one.
But you should be 'careful' because an inspection lot will be create even if other movement like '501'.
Regards
Luke
Similar Messages
-
Post GR (from production) + Create inspection lot through an interface
Dear All<BR><BR>
We would like to set up an interface which posts a GR (production - mvt type 101) and also creates an inspection lot for the produced batch. When you post this GR online (MB31), it is possible to have the inspection lot created automatically (some memory ID has to be flagged), which actually first triggers a SAP standard popup asking for the inspection plan.<BR><BR>
I have tried setting this up with a test program, first calling BAPI_GOODSMVT_CREATE to post the GR and then calling a combination of functions, the main one being QPL1_INSPECTION_LOT_CREATE, to have the inspection lot created. I am however having troubles with the generated inspection lot, e.g. when I click the button "Mat. Documents", it says "no material documents fonud".<BR><BR>
Does anybody have any suggestions? Our system is 4.6 C. If I appear reluctant to answer any of your replies, that's because I'm out for holidays the upcoming 20 days)<BR><BR>
Thank you and krgs<BR>
Tom<BR><BR>
Edited by: Tom Van Oevelen on Aug 26, 2009 3:53 PM
Edited by: Tom Van Oevelen on Aug 26, 2009 4:00 PM
Edited by: Tom Van Oevelen on Sep 22, 2009 5:15 PMHi Lammie,
I am really confuses actually what you want, but can give you a brief idea about in process inspection.
There are 2 of inspection types related to it-03 and 04. 03 type will create lot but that will use routing as task list. 04 will use inspection plan as task list. So, when processing production order, 1st 03 type will generate a lot, there you can check hows the quality going.This lot is not stock relevant. After confirmation, 04 type will create another lot for final result confirmation and this lot is stock relevant. -
Serial Number not flowing from GR from Production to Inspection lot
Dear Friends,
In GR from production we are entering Serial Numbers but it is not coming automatically in the inspection lot.
Please guide me
Regards
Prashant Atrigo to spro
Sales and Distribution Basic Functions Serial Numbers Determine Serial Number Profiles select ur serial number profile
double click on serialing procedure QMSL Maintain inspection lot 03 02
now check -
Product Allocation: Removing a Material from Product Allocation
Hey folks!
I am new to the forums, so hopefully some of you sharks will bite on this one. I work for a consumer products company and we're having issues with product allocations.
We have had a material on product allocation for the past 3 months. We used a allocation rule that is modeled off of the S140 rule on the basic data of the material view. However, our production has now ramped up sufficiently to produce this product and provide normally.
1) How do we remove the material from product allocation?
We deleted the rule from the basic data view, but is there anything else we need to do? There are many remaining open sales orders that get the error "No Feature Combination exists for this selection error". I have ran rescheduling (V_V2) and have also ran the SDRQCR21 to rebuild requirements, but it still remains with this error.
2) Is there something we have to do with the infostructures? Something we have to do in MC64 or MC94?
3) Do we need to go through each sales order and delete the line item and replace the line item to get the normal ATP to function (we would rather not do this as we have EDI information connected to each line item)
4) Is there another report out there I need to run that I just do not know about?
Any help would be great. We are on ECC5.0 Hotpack 15. I will reward points if I can figure out how to.Use MC94 to remove the quantities allocated.
Use MC62 to remove the planning hierarchy.
I believe that in your situation MC94 will work. -
Return vendor rejection from production line
Hi,
Guru,
How to return vendor rejection from production line and it should be vendor wise.
regards,
rakesh patelHi..
To achieve this requirement there are some developments are required.
e.g.:- One different movement type should be there for handling vendor rejection from production line to transit store.
One different transit store should be there for handling the rejections.
And you must know that particular material has come from which vendor e.g. 10nos are from xyz vendor and 7 nos from abc vendor.
Now you can do the transfer posting thru MIGO from production line to transit store. and can select supplier from partner tab.
Different movement type and storage location would be very helpful for reporting part. And maintain discipline.
Regards
Vivek. -
Can we Delete the Product/Material from Product Master in CRM
Hi Gurus,
I want to delete some test products from Product master, I don't see any link for delete there in product master transaction.
Can we Delete the Product from Product Master in CRM??
Thanks in Advance.
Regards,
Manoj TiwariTry this:
*& Report ZVB_PRODUCT_DELETE (release CRM 4.0 SP03) *
*& Instructions are in OSS Note #427332 *
report zvb_product_delete line-size 300.
const, include
include com_product_const001.
include com_product_const003.
include com_product_const009.
include com_product_const011.
include com_settype_attribute_const03.
tables: comm_iproduct, "#EC NEEDED
comm_product.
constants:
gc_program type programm value 'COM_PRODUCT_DELETE_SINGLE'.
data: gv_product_guid type comt_product_guid,
gv_prty type comt_product_type,
gv_syslog(70) type c,
lv_mobile_active type comt_boolean,
lv_delete type comt_boolean value 'X'.
data: lt_settypes type comt_frgtype_tab_ext,
lt_status_guid type comt_prd_status_guid_tab.
data: begin of lt_products occurs 0,
product_id like comm_product-product_id,
product_guid like comm_product-product_guid,
end of lt_products.
Screen User query
selection-screen comment /1(60) text-006.
selection-screen skip 2.
select-options: s_prid for comm_product-product_id.
*parameters: p_prid type comt_product_id obligatory,
parameters: p_prty type comt_product_type obligatory default '01',
p_logs type comt_logsys obligatory,
p_objf type comt_product_object_family,
p_send as checkbox modif id 001 default on,
p_usage as checkbox modif id 001 default off,
p_test as checkbox default 'X'.
at selection-screen output.
perform check_mobile_download
changing lv_mobile_active.
if lv_mobile_active is initial.
loop at screen.
check screen-group1 = '001'. "disable field p_send, p_usage
screen-active = '0'.
modify screen.
endloop.
endif.
start-of-selection.
perform check_authority.
Write syslog entry
concatenate 'Rep. ' sy-repid ': ' p_prid(30) '/' p_prty '/' p_logs
into gv_syslog. "#EC NOTEXT
call 'C_WRITE_SYSLOG_ENTRY'
id 'TYP' field ' '
id 'KEY' field 'C00'
id 'DATA' field gv_syslog .
inactive product are not supported here
select * from comm_iproduct
where product_id = p_prid
and product_type = p_prty
and object_family = p_objf
and logsys = p_logs.
endselect.
if sy-subrc = 0.
write: / text-001, text-005.
exit.
endif.
read products according to the selection criteria
select * from comm_product
into corresponding fields of table lt_products
where product_id in s_prid
and product_type = p_prty
and object_family = p_objf
and logsys = p_logs.
if sy-subrc ne 0.
write: / text-010.
exit.
endif.
loop at lt_products.
read product and enqueue
perform product_enqueue
using lt_products-product_id
p_prty
p_logs
p_objf
changing gv_product_guid
gv_prty.
check not gv_product_guid is initial.
if p_usage = on.
perform check_usage
using gv_product_guid
changing lv_delete.
endif.
check lv_delete = on.
check p_test = space.
first delete the component of the IBase
perform delete_ibasecomponent
using gv_product_guid.
perform delete_extensions
using gv_product_guid
lt_settypes.
perform delete_settypes
using gv_product_guid
lt_settypes
changing lt_status_guid.
perform delete_interlinkages
using gv_product_guid.
perform delete_pme_data "multivalue attributes
using gv_product_guid.
perform delete_decoupled_data "long text, longmatnr,
using gv_product_guid. "ibase prodvar,...
perform delete_status
using lt_status_guid.
perform delete_favorites
using gv_product_guid.
perform delete_clear_case
using gv_product_guid.
if p_send = 'X'.
perform send_deletion_to_mw
using gv_product_guid.
endif.
delete from comm_product where product_guid = gv_product_guid.
delete from comm_producth where product_guid = gv_product_guid.
delete from comm_product_idx where product_guid = gv_product_guid.
delete from comm_prwb_user_2 client specified
where client = sy-mandt and last_object = gv_product_guid.
call function 'BAPI_TRANSACTION_COMMIT'
exporting
wait = 'X'.
write: / text-001, lt_products-product_id, text-004.
endloop.
*& Form product
form product_enqueue
using iv_prid type comt_product_id
iv_prty type comt_product_type
iv_logs type comt_logsys
iv_objf type comt_product_object_family
changing ev_pguid type comt_product_guid
ev_prty type comt_product_type.
data ls_product type comt_product.
call function 'COM_PRODUCT_GUID_GET'
exporting
iv_product_id = iv_prid
iv_product_type = iv_prty
iv_logsys = iv_logs
iv_object_family = iv_objf
iv_show_popup = 'X'
importing
ev_product_guid = ev_pguid
exceptions
not_found = 1
wrong_call = 2
internal_error = 3
others = 4.
if sy-subrc <> 0.
write: / text-001, space, iv_prid.
write: text-003. "Product not found
exit.
else.
write: / text-001, space, iv_prid.
write: text-002. "Product found
endif.
call function 'COM_PRODUCT_READ_SINGLE'
exporting
iv_product_guid = ev_pguid
iv_enqueue_mode = ' '
importing
es_product = ls_product
exceptions
not_found = 1
wrong_call = 2
foreign_lock = 3
enqueue_failed = 4
others = 5.
if sy-subrc <> 0.
if sy-subrc > 2.
write: / text-001, space, iv_prid.
write: text-007. "Product enqueued
exit.
else.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
exit.
endif.
exit.
endif.
ev_prty = ls_product-product_type.
special authotirty check (with considering the assigned
categories)
call function 'COM_PRODUCT_CT_AUTHORITY_CHECK'
exporting
iv_auth_act = '06'
iv_product_guid = ev_pguid
exceptions
no_authority = 1
wrong_call = 2
internal_error = 3
others = 4.
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
endform. " product
*& Form delete_extensions
form delete_extensions
using iv_product_guid type comt_product_guid
et_settype type comt_frgtype_tab_ext.
data: lv_db_tab type ddobjname,
lv_subrc_pr_guid like sy-subrc,
table_name_ref type ref to data,
lt_extension type comt_frgtype_tab_ext,
ls_extension type comm_frgtype_ext.
field-symbols: <table_name> type any,
<field_name> type any.
check not iv_product_guid is initial.
delete extensions e.g. COMM_PRFREEATTR, CRMM_PR_TAX, COMM_PR_UNIT,
COMM_PR_SHTEXT,COMM_PR_GTIN, comm_prprdcatr,..
perform load_extensions
using iv_product_guid
changing lt_extension
et_settype.
loop at lt_extension into ls_extension.
lv_db_tab = ls_extension-frgtype_tab.
check not lv_db_tab is initial. "CRM_CAT_SAT & CRM_CAT_PUR
does table exist ?
call function 'DDIF_NAMETAB_GET'
exporting
tabname = lv_db_tab
exceptions
not_found = 1
others = 2.
check sy-subrc = 0.
Due to any reason (I don't know why) sometimes we have product_guid
and sometimes we have frg_guid as name of the key field.
create data table_name_ref type (lv_db_tab).
assign table_name_ref->* to <table_name>.
assign component 'PRODUCT_GUID' of structure <table_name>
to <field_name>.
lv_subrc_pr_guid = sy-subrc.
if lv_subrc_pr_guid = 0.
delete from (lv_db_tab)
where product_guid = iv_product_guid.
else.
delete from (lv_db_tab)
where frg_guid = iv_product_guid.
endif.
delete history of extension table
concatenate ls_extension-frgtype_tab 'H' into lv_db_tab.
create data table_name_ref type (lv_db_tab).
assign table_name_ref->* to <table_name>.
assign component 'LOGSYS' of structure <table_name>
to <field_name>.
check sy-subrc = 0.
call function 'DDIF_NAMETAB_GET'
exporting
tabname = lv_db_tab
exceptions
not_found = 1
others = 2.
check sy-subrc = 0.
if lv_subrc_pr_guid = 0.
delete from (lv_db_tab)
where product_guid = iv_product_guid.
else.
delete from (lv_db_tab)
where frg_guid = iv_product_guid.
endif.
endloop. " end of loop for all extensions
endform. " delete_extensions
*& Form delete_settypes
form delete_settypes
using iv_product_guid type comt_product_guid
it_settypes type comt_frgtype_tab_ext
changing et_status_guid type comt_prd_status_guid_tab.
data: ls_reldesc type coms_pr_org_rel,
lt_reldesc type comt_pr_org_rel_tab,
lt_reltab type ref to data,
ls_settype type comt_settype_ext,
ls_table type tabname,
ls_status_guid type crmt_object_guid.
field-symbols:
<fs_reltab> type any table,
<fs_relrow> type any,
<fs_settype> type comt_frgtype_guid,
<fs_setguid> type comt_frg_guid,
<fs_statguid> type crmt_object_guid.
memorise product status guide
ls_status_guid = iv_product_guid.
append ls_status_guid to et_status_guid.
load description of relation tables
call method cl_com_product_org_type=>comc_pr_org_link_read_all
importing
et_pr_org_rel = lt_reldesc
exceptions
no_desc = 0.
for all relation types (e.g. comm_pr_frg_rel, comm_pr_frg_rod)
loop at lt_reldesc into ls_reldesc.
read product/settype relations
create data lt_reltab type (ls_reldesc-link_table_ttyp).
assign lt_reltab->* to <fs_reltab>.
call function ls_reldesc-func_rel_read_pr
exporting
iv_product_guid = iv_product_guid
importing
et_rel = <fs_reltab>
exceptions
wrong_call = 1
not_found = 2
others = 3.
check sy-subrc = 0.
for all links...
loop at <fs_reltab> assigning <fs_relrow>.
assign component 'FRAGMENT_TYPE' of structure <fs_relrow>
to <fs_settype>.
assign component 'FRAGMENT_GUID' of structure <fs_relrow>
to <fs_setguid>.
assign component 'STATUS_OBJECT' of structure <fs_relrow>
to <fs_statguid>.
read table it_settypes with key frgtype_guid = <fs_settype>
into ls_settype.
check sy-subrc = 0.
settype table
delete from (ls_settype-frgtype_tab)
where frg_guid = <fs_setguid>.
history table
concatenate ls_settype-frgtype_tab 'H' into ls_table.
delete from (ls_table)
where frg_guid = <fs_setguid>.
memorise settype status guide
if not <fs_statguid> is initial.
ls_status_guid = <fs_statguid>.
append ls_status_guid to et_status_guid.
endif.
endloop. "of links
relation table (e.g. comm_pr_frg_rel)
delete from (ls_reldesc-link_table)
where product_guid = iv_product_guid.
history table
concatenate ls_reldesc-link_table 'H' into ls_table.
delete from (ls_table) where product_guid = iv_product_guid.
endloop. " of relation types
endform. " delete_settypes
*& Form delete_interlinkages
form delete_interlinkages
using iv_product_guid type comt_product_guid.
constants: cv_db_name(8) type c value 'COMM_IL_',
cv_suffix_h(2) type c value '_H'.
data: lt_ilinks type comt_il_data_tab,
lt_reltype type comc_il_reltype_tab with header line,
lv_ddictype type dd02v-tabclass,
lv_dbname type comt_structure.
CHECK p_objf IS INITIAL.
first we have to read all ILs where the productguid is sourceguid
refresh lt_ilinks.
call function 'COM_IL_API_WHERE_USED'
exporting
iv_objectguid = iv_product_guid
iv_objtype = gc_bus_objtype_bus1178
iv_direction = 'S'
importing
et_interlinkage = lt_ilinks.
check not lt_ilinks[] is initial.
delete adjacent duplicates from lt_ilinks comparing reltype.
read ilinkage customizing
select * from comc_il_reltype into table lt_reltype
for all entries in lt_ilinks where reltyp = lt_ilinks-reltype.
delete interlinkages
loop at lt_reltype.
if lt_reltype-streltyp ne space.
concatenate cv_db_name lt_reltype-streltyp into lv_dbname.
else.
concatenate cv_db_name lt_reltype-reltyp into lv_dbname.
endif.
delete data
call function 'DDIF_NAMETAB_GET'
exporting
tabname = lv_dbname
importing
ddobjtype = lv_ddictype
exceptions
not_found = 1
others = 2.
check sy-subrc = 0 and lv_ddictype = 'TRANSP'. "#EC NOTEXT
delete from (lv_dbname) where sourceguid = iv_product_guid.
delete history
check lt_reltype-change_doc = 'X'.
concatenate lv_dbname cv_suffix_h into lv_dbname.
call function 'DDIF_NAMETAB_GET'
exporting
tabname = lv_dbname
importing
ddobjtype = lv_ddictype
exceptions
not_found = 1
others = 2.
check sy-subrc = 0 and lv_ddictype = 'TRANSP'. "#EC NOTEXT
delete from (lv_dbname) where sourceguid = iv_product_guid.
endloop.
endform. "delete_interlinkages
*& Form delete_pme_data
form delete_pme_data
using iv_product_guid type comt_product_guid.
delete multivalue attributes from PME
data: lt_pmemap like standard table of comm_pme_prd_map,
ls_pmemap like comm_pme_prd_map.
select * into table lt_pmemap
from comm_pme_prd_map
where crm_object_guid = iv_product_guid.
check sy-subrc = 0.
loop at lt_pmemap into ls_pmemap.
call function 'CRM_SCE_DB_KB_DELETE'
exporting
iv_kbid = ls_pmemap-kbid.
endloop.
delete comm_pme_prd_map from table lt_pmemap.
endform. "delete_pme_data
*& Form send_deletion_to_mw
form send_deletion_to_mw
using iv_product_guid type comt_product_guid.
data: cv_function_module like rs38l-name
value 'CRM_PROD_SEND_DELETION_MESSAGE'. "#EC NOTEXT
data: lt_product_guid type comt_product_s_tab with header line.
lt_product_guid-product_guid = iv_product_guid.
append lt_product_guid.
call function 'FUNCTION_EXISTS'
exporting
funcname = cv_function_module
exceptions
function_not_exist = 1
others = 2.
check sy-subrc = 0.
call function cv_function_module
exporting
it_product_guid = lt_product_guid[]
iv_test_only = space
exceptions
internal_error = 1
others = 2.
if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
endform. " send_deletion_to_mw
*& Form check_mobile_download
form check_mobile_download
changing ev_mobile_active type comt_boolean.
data:
cv_db_tab type ddobjname value 'SMOMARA'.
data: lv_lines type i value 0.
clear ev_mobile_active.
call function 'DDIF_NAMETAB_GET'
exporting
tabname = cv_db_tab
exceptions
not_found = 1
others = 2.
check sy-subrc = 0.
select count( * ) into lv_lines
from (cv_db_tab) up to 10 rows. "#EC CI_NOWHERE
if lv_lines > 0.
ev_mobile_active = on.
endif.
endform. " check_mobile_download
*& Form check_authority
form check_authority.
tables: t000, comc_pr_tool_reg. "#EC NEEDED
check productiv system - report must not be executed
select single * from t000 client specified "#EC CI_CLIENT
where mandt = sy-mandt.
if t000-cccategory = 'P'.
message e807(com_product) .
leave.
leave to transaction ' '.
endif.
Check authority for product delete
call function 'COM_PRODUCT_AUTHORITY_CHECK'
exporting
iv_auth_act = '06'
exceptions
no_authority = 1
wrong_call = 2
internal_error = 3
others = 4.
if sy-subrc ne 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
MESSAGE e808(com_product).
leave.
leave to transaction ' '.
endif.
Additional step: registration
select single * from comc_pr_tool_reg
where program_name = gc_program
and user_name = sy-uname
and exec_date = sy-datum.
if sy-subrc ne 0.
message e809(com_product).
endif.
endform. " check_authority
*& Form delete_decoupled_data
form delete_decoupled_data
using iv_product_guid type comt_product_guid.
include com_product_const018.
Deleting decoupled and customer requested data (long_text, longmatnr,
upload registry, ibase product variants coming from R/3,
archive verify registry). Documents like PDF,XLS,DOC,JPG stored in
Content Management will not be deleted
load BADI implementations
class: cl_exithandler definition load.
data: exit_obj type ref to if_ex_com_product_delete.
call method cl_exithandler=>get_instance
exporting
exit_name = gc_badi-com_product_delete
null_instance_accepted = on
changing
instance = exit_obj.
call BADI implementations (User Exit)
call method exit_obj->delete_extra_data
exporting
iv_product_guid = iv_product_guid.
endform. " delete_decoupled_data
*& Form load_extensions
form load_extensions
using iv_product_guid type comt_product_guid
changing et_extension type comt_frgtype_tab_ext
et_settype type comt_frgtype_tab_ext.
data: lt_prd_cat type comt_prod_cat_rel_tab,
ls_prd_cat type comt_prod_cat_rel,
lt_cat_frg type comt_prcat_frag_rel_tab,
ls_cat_frg type comt_prcat_frag_rel,
lt_settype_guid type comt_frgtypeguid_tab,
ls_settype_guid type comt_frgtype_guid,
lt_settype type comt_frgtype_tab_ext.
refresh et_extension.
read categories assigned to product
call function 'COM_PROD_CAT_REL_READ_WITH_PR'
exporting
iv_product_guid = iv_product_guid
importing
et_set = lt_prd_cat.
loop at lt_prd_cat into ls_prd_cat.
read allowed settypes for categories
call function 'COM_PRCAT_FRAG_REL_READ'
exporting
iv_category_guid = ls_prd_cat-category_guid
importing
et_prcat_frag_rel = lt_cat_frg
exceptions
wrong_call = 1
others = 2.
check sy-subrc = 0.
refresh lt_settype_guid.
loop at lt_cat_frg into ls_cat_frg.
ls_settype_guid = ls_cat_frg-frgtype_guid.
append ls_settype_guid to lt_settype_guid.
endloop.
read settype defintions
call function 'COM_SETTYPE_READ_MULTIPLE'
exporting
it_settype_guid = lt_settype_guid
importing
et_settype = lt_settype
exceptions
nothing_found = 1
others = 2.
if sy-subrc = 0.
only settypes
et_settype[] = lt_settype[].
delete et_settype[] where
( prod_comp_type = gc_prod_comp_type-extension or
prod_comp_type = gc_prod_comp_type-simple_extension ).
only extensions
delete lt_settype[] where
( prod_comp_type ne gc_prod_comp_type-extension and
prod_comp_type ne gc_prod_comp_type-simple_extension ).
et_extension[] = lt_settype[].
endif.
endloop. " end of product categories
endform. " load_extensions
*& Form delete_status
form delete_status
using it_status_guid type comt_prd_status_guid_tab.
data:
lt_status like crm_jsto_pre occurs 0,
ls_status type crm_jsto_pre,
ls_status_guid type crmt_object_guid.
loop at it_status_guid into ls_status_guid.
ls_status-objnr = ls_status_guid.
append ls_status to lt_status.
endloop.
call function 'CRM_STATUS_DELETE_MULTI'
tables
objnr_table = lt_status.
endform. " delete_status
*& Form delete_favorites
form delete_favorites
using iv_product_guid type comt_product_guid.
call function 'COM_PRODUCT_DELETE_FAVORITES'
exporting
iv_object_guid = iv_product_guid.
endform. " delete_favorites
*& Form delete_clear_case
form delete_clear_case
using iv_product_guid type comt_product_guid.
data: ls_customizing type comc_product,
lv_clear_case_guid type comt_clear_case_guid.
Is cusotmizing-flag INACTIV_PROD activated ?
call method cl_com_product_general=>comc_product_read_all
importing
es_prod_general = ls_customizing
exceptions
not_found = 1
others = 2.
check ls_customizing-inactive_prod = on.
select single clear_case_guid from comm_clear_targ "#EC *
into lv_clear_case_guid
where object_guid = iv_product_guid "active
and object_class = 'PROD'.
normaly two entries for active and inaktive product version
delete from comm_clear_targ
where clear_case_guid = lv_clear_case_guid
and object_class = 'PROD'.
delete from comm_clear_stack
where guid = lv_clear_case_guid
and application = 'PROD'.
endform. "delete_clear_case
*& Form check_usages
form check_usage
using iv_product_guid type comt_product_guid
changing ev_delete type comt_boolean.
include sbal_constants.
data: cv_function_module like rs38l-name
value 'COM_PRODUCT_USAGE_CHECK'. "#EC NOTEXT
data: ls_product type comt_product,
lt_product type comt_product_tab.
data: ls_logheader type bal_s_log, "Kopfdaten des Protokolls
lv_loghandle type balloghndl.
data: ls_msg_filter type bal_s_mfil,
ls_log_filter type bal_s_lfil,
lt_msg_handle type bal_t_msgh,
ls_log_handle type bal_s_logh,
ls_msg_handle type balmsghndl,
ls_msg type bal_s_msg,
ls_string type string.
does CRM function exist
call function 'FUNCTION_EXISTS'
exporting
funcname = cv_function_module
exceptions
function_not_exist = 1
others = 2.
check sy-subrc = 0.
create log handle
ls_logheader-aldate = sy-datum.
ls_logheader-altime = sy-uzeit - 10.
ls_logheader-aluser = sy-uname.
ls_logheader-alprog = sy-repid.
call function 'BAL_LOG_CREATE'
exporting
i_s_log = ls_logheader
importing
e_log_handle = lv_loghandle
exceptions
log_header_inconsistent = 1
others = 2.
if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
ls_product-product_guid = iv_product_guid.
append ls_product to lt_product.
call usage checks
call function cv_function_module
exporting
it_product = lt_product
iv_loghandle = lv_loghandle.
filter settings
ls_log_handle-sign = 'I'.
ls_log_handle-option = 'EQ'.
ls_log_handle-low = lv_loghandle.
append ls_log_handle to ls_log_filter-log_handle.
get messages
call function 'BAL_GLB_SEARCH_MSG'
exporting
i_s_log_filter = ls_log_filter
i_s_msg_filter = ls_msg_filter
importing
e_t_msg_handle = lt_msg_handle
exceptions
msg_not_found = 1
others = 2.
check sy-subrc = 0.
ev_delete = space.
write: / text-001, text-008.
read messages
loop at lt_msg_handle into ls_msg_handle.
call function 'BAL_LOG_MSG_READ'
exporting
i_s_msg_handle = ls_msg_handle
importing
e_s_msg = ls_msg
exceptions
log_not_found = 1
msg_not_found = 2
others = 3.
check sy-subrc = 0.
message id ls_msg-msgid type ls_msg-msgty number ls_msg-msgno
with ls_msg-msgv1 ls_msg-msgv2 ls_msg-msgv3 ls_msg-msgv4
into ls_string.
write: /, ls_string.
clear ls_msg.
endloop.
endform. " check_usages
*& Form delete_ibasecomponent
text
-->P_GV_PRODUCT_GUID text
form delete_ibasecomponent using p_product_guid.
data: lv_guid22 like sysuuid-c22,
ls_comp type ibas_dat1.
tables: ibin.
break pvho.
call function 'GUID_CONVERT'
exporting
iv_guid_x16 = p_product_guid
importing
ev_guid_c22 = lv_guid22
exceptions
no_unicode_support_yet = 1
parameters_error = 2
others = 3.
find the component
select * from ibin
where objnr = lv_guid22.
clear ls_comp.
ls_comp-instance = ibin-instance.
ls_comp-ibase = ibin-ibase.
call function 'IBASE_COMP_DELETE'
exporting
i_comp = ls_comp
exceptions
data_not_consistent = 1
ibase_locked = 2
not_succesful = 3
others = 4.
if sy-subrc eq 0.
call function 'IBASE_SAVE'.
endif.
endselect.
endform. " delete_ibasecomponent -
Return to store from production quality
hi,
There is a problem , i have a senario suppose some raw material is left in production then we have to return to store , so the stores people check that material
Inspection plan is already maintained with usages 5 and status 4 (inspection lot is generated when we procure a material from vendor)
i activate the inspection type 01, 0101, 04,05 and 08, for material ROH1 but when i do the migo with movement type 262, i did not get the inspection lot , please suggest.
Please suggest
Regard
MaashishHi Maashish,
This is stock transfer inspection (~Type 08).
1. Check the "Task List Usage" in customisation of Inspection type 08. (Standard SAP has set it as 9)
Quality Inspection>Inspection Lot Creation> Maintain inspection type
2. Check your customisation for movement type 262. Is QM activated?
Quality Inspection>Inspection Lot Creation> Inspection for Goods Movement-->Deactivate Q Insp. for a movement type.
Hope it works after these corrections/checks.
Regards,
Pradeep -
Material rejected through quality inspection lot goes to blocked stock
Dear All,
All materials that are rejected through quality inspection lot should go to blocked stock. My client want to generate a report for viewing what all materials are rejected. How can do that?
scenario2: If the materials are rejected then can they be automatically be sent back to the vendor (return to vendor). if possible
pl send me some suggestions...!!!
pl discussHi,
See mvt of material directly to blocked stock u can do by setting the Selected Set of ur specific UD code. in QS51/QS52. there is one column near to code, set R=rejected and set that field "BloCked Stock" . Define there and execute ur transcation, whenever u provide an UD system automatically post the stock in blocked location.
MCVX is the report where u can get the stock lying in blocked location, or for temp. purpose use QVI and developed the new report.
regards -
GRN With 2line items(material,batch same)one inspection lot for 2line items
Dear Experts
As and when we make a GRN with 2 line items and same batch number we enter no. of containers differently but only the number from the first line item is flowing into the Inspection lot origin.We are creating only one inspection lot for 2 line items as the batch number is same for the items.
1. In material master i have given 01 inspection type ( with control inslot.. Each material document,batch, storage location) :---
this is the reason system is creating only one inspection lot.
i am entering manually same batch number for 2line items...
Here my problem is ... while giving UD... SYSTEM IS PICKING ONLY FIRST LINE ITEM NO.OF CONTAINER... IT HAS TO BE BOTH LINE ITEMS CONTAINERS.... IT IS PICKING BOTH LINE ITEMS QUANTITY... NO.CONTAINER ONLY IT IS NOT PICKING....
Waitting for experts replyHi,
As per your query if you put in MM forums then you will get the reply immly.
Anil -
Material to Material Transfer and 08 Inspection Lots
Gang,
I need major help.
I have a situation where I want to do a Movement type 309 Material to Material Transfer. I have 08 Type Inspection set up on the Material. In this case I DO NOT want the Stock going into Quality. I just want it to go to Unrestricted to Unrestricted.
In config. I deactivated the QM Active for 309 Movement under Inspection for Goods Movement. That did not seem to work.
Any Ideas??
Thanks so much
-BRUCE1) Remove 'QM deactivation' of movement type '309' in customizing.
It means the inspection activation for movement type '309'.
2) Create material master-QM view and inspection setup with inspection type '08'.
When you create the inspection setup data in QM view, you should remove the indicator 'Post to insp. stock'.
3) When material document with movement type '309' occur, an inspection lot is created and stock is transfered to unrestriced stock.
Regards
Luke -
Goods Receipt generates inspection lot using inspection type 08
Hi,
I have two plants A and B. I have set up my materials with an 08 inspection type plant B. Material transfers from plant A and B generate an inspection lot using inspection type 08 and inspection lot origin 08. This works perfectly.
However if I use a stock transfer between two storage locations within 1 plant, using stock transfer order, inspection lot is generated using inspection type 08 when GR is performed.
Is there a link between 08 inspection type and 101 movement
RegardsYes ,101 & 08 are associated with each other for stock transfer order that is only when receipt indicator is "X" and mvt indicator is prchase order.
If you do not want this to haapen then
copy mvt type 101 as Z01 & for this mvt type deactivate QM in
QCC3->inspection lot creation->Inspect for goods mvt->Deactivate Quality Inspection for a Movement Type>Z01-->deactivate
Use this mvt type when you are tranferring material from storage location to storage Location.
This will not create any inspection lot.
Edited by: Sujit Gujar on Aug 4, 2011 1:09 PM -
Transfer of Results from IDOC to Inspection Lot
Hello experts,
Following scenario:
Inbound IDOC (QCERT) from vendor with inspection results is supposed to populate the inspection lot, which is being created at GR for PO.
QM in procurement is active and QM control key and ceritificate type populated in material master record. We also activated workflow, which is supposed to execute the transfer from IDOC to the inspection lot automatically as soon as inspection lot gets status CROK.
This works only under certain circumstances in the following order:
1. Inbound IDOC received
2. Q-certificate created automatically from IDOC with intial status "2 - Certificate received"
2. GR posting for PO
3. Manual setting of status "5 - Certificate filed and inspected"
4. Inspection lots receives status CROK and the results are being transferred to the inspection lot
This is okay as a start, but not ideal. We would like to have the following behaviour:
1. Automatic setting of status "CROK" for inspection lot in order to transfer the results as soon as certificate and inspection lot are available.
2. If the IDOC is being received after GR for PO, there is no connection in the Q-certificate to the inspection lot, i.e. the transfer of results will never take place, but it should.
Can anybody help and knows, if this is feasible in SAP standard?
Many thanks!
MartinWith IDOC Type Quality01 there is no reference to inspection lot, but in IDOC type Quality02 there is
a inspection lot reference in segment E1EDLIN-E1CCI01, you will have to find out the logic to auto
populate the lot # , please consult developer if its possible
Thanks
DD -
Generate Inspection lot operation when needed
Hi
We are using inspection lots to record supplier results for certain raw materials.
We now need to include our own test results to these inspection lots.
To accomplish this we’re thinking of using the same inspection plan with a 2nd operation.
This will enable us to generate one inspection lot per GR while recording two types of results (i.e. Op1 = Supplier, Op2 = Own).
The inspection lot will always have results from Supplier, but we might only internally test every 10th delivery (GR).
Is it possible to generate the 2nd operation (i.e. Own results) when needed?
Or any other elegant approach/process?
ThanksHi Werner
Not is possible add more results in a inspection lot when you made the usage decision.
For this case, you can use the inspection class 89 (Other Inspection) for manually generation inspection lot when you need to register your own results.
For this inspection class 89 you need an inspection plan with another usage (Usage 3). In this inspection plan you can to use your own test.
Regards.
Henry. -
Movement code for return from Production without WBS?
Hi All
How can I return material from production without entering a WBS. Currently we use MB1A movement type 222 but we have difficulty in identifying material coming back from production. But we have to enter a WBS element. As you know, this takes the cost of the material from the WBS. If we have no WBS we cannot return it into stock.
How can I return material into a warehouse from production without entering (no reference) to a WBS? Material is issued to production using movement types 221 and 281.
Thanks
DarrenHi,
Please try to use the movement types: 521 (or) 531 , to receive goods without referring Production Orders/ WBS elements.
Regards,
Narayana. -
Scrapping management from inspection lot 0130
Hi Gurus !
Please explain how to manage this scenario :
Subcontractor vendor delivers us 10 parts coresponding to the last operation of our production order.
We create inspection lot type 0130 at GR to control the delivery and find 2 parts to scrap.
As in my inspection lot 0130 we can't manage stock, how can we scrap these 2 parts and keep the 8 good parts for our stock ?
ThxHello,
sorry if it was not clear enough.
Let us take an example.
1) According of what the supplier said he will send, I create my batch (BATCH01) via MSC1n and for the characteristic "color" I precise, it will be "yellow".
2) The material is coming, I put it into my stocks via MIGO, giving the batch number (BATCH01).
3) I get automaticaly an inspection lot and send a sample to the lab.
4)The lab send the resutls and finaly the "color" is "orange". So in results via QA32, I precise orange, and I expected my batch to be updated after the usage decision.
5) But I still see "yellow"... the system tells me he is not able to change the value.
I hope you can understand it better.
Best regards
Maybe you are looking for
-
Use Mini DisplayPort to DVI adapter to connect Mac Mini to Cinema Display?
Hi I have a new-to-me current model Mac Mini and want to use it with my 20" Cinema Display (model A1081). The Mac Mini instructions say to use the HDMI port on the Mac Mini with a DVI>HDMI adapter cable. I seem to have only a DVI>Mini DisplayPort ada
-
How can I scan directly into Ps CS4 on a Mac when Rosetta wont work?
I'm using a Mac Pro Quadcore with Snow Leopard version 10.6.8 and want to scan photos straight into Ps CS4 version 11.0.2 using a Canon Canoscan LIDE 100. BUT when I go to Import there is no TWAIN option, there is only: Variable Data Sets (grayed out
-
How to see weeks in the calendar on iPhone 3GS?
I want to see weeks in the iPhone Calendar. How can I do this?
-
Does anyone know the maximum hard drive size for a 2007 Macbook Pro (A1226)?
I have a 2007 Macbook Pro (A1226). Is there a limit to the sized hard drive that can be installed? If so, what is the largest hard drive I can put into it? I have a 500GB HD that I upgraded to from the 320 GB that was in it when I bought it. I'm now
-
802.1x Wireless authentictaion problem ISE
Have setup a new test WLAN, using the below on WLC WPA2 Policy WPA2 Encryption AES TKIP AAA Radius server configured is the actual ISE server with Advanced defaults > AAA override. Attached is the client debu