Question CSAP_MAT_BOM_MAINTAIN:
1. L'exception n'est pas nécessairement e. Par exemple, "L'unité de mesure ROL ne prend pas en charge les décimales décimales" est un W, mais il apparaît dans l'exception. La raison en est que l'erreur est déclenchée ailleurs, puis le programme continue de s'exécuter. Le message renvoyé est le dernier message qui peut être non-E. Par exemple, lors de la suppression d'un composant de nomenclature, le retour est I 29 862 article & & & est supprimé. Il ne s'agit pas d'un message d'erreur, mais si l'en-tête est modifié à ce moment, une erreur E 29 282 sera signalée lorsque l'en-tête le champ peut être modifié. L'en-tête peut uniquement être affiché. L'entrée est ignorée, ce qui indique que certains champs ne peuvent pas être modifiés et qu'une erreur est générée, mais le message renvoyé est un message de suppression du projet et ne sera finalement pas soumis. Vérifiez le code en tête
2. "L'en-tête de la nomenclature ne peut être affiché. L'entrée est ignorée", la nomenclature n'est pas modifiée, si un nouveau numéro de modification est transmis à ce moment, une erreur sera signalée. 29 031
démo
formulaire frm_bom_create
utilisant
pv_matnr
pv_werks
pv_stlan
pv_stlal
pv_zjdbs "ajouté par cuijunhu pour chanceux 20160811
pv_stktx
en changeant
pv_rc
pv_msg
.
données: o_stko type stko_api02.
data: table de type lt_stpo de stpo_api02 avec ligne d'en-tête.
data: table de type lt_item de stpo_api03 avec ligne d'en-tête.
data: stko comme stko_api01.
date: datav (10),
stlalr type stalt, "numéro de nomenclature facultatif pour l'expansion
stlalm type stalt. "Numéro de nomenclature facultatif pour modification
effectuer cunit_output en changeant les mara-meins.
stko-base_unit = mara-mine.
* stko-base_quan = '1'.
stko-bom_status = '01'.
stko-alt_text = pv_stktx.
stko-zjdbs = pv_zjdbs. "ajouter par cuijunhu pour la chance 20160811
* stko-bom_text = pv_stktx.
boucle à it_upload dans wa_upload
où matnr = pv_matnr
et werks = pv_werks.
clear: lt_item.
vérifiez que wa_upload-idnrk n'est pas initial.
exécutez matn1_input en changeant wa_upload-idnrk.
*Chèque
sélectionnez single * de marc
où matnr = wa_upload-idnrk et
werks = wa_upload-werks.
si sy-subrc <> 0.
shift wa_upload-idnrk gauche en supprimant '0'.
pv_msg = 'Matériel' && wa_upload-idnrk && 'Pas dans l'usine' && wa_upload-werks && 'Maintenance'.
pv_rc = 'E'.
sortir.
fin si.
effectuer numcv_input en changeant wa_upload-posnr.
lt_item-item_no = wa_upload-posnr.
lt_item-item_categ = wa_upload-postp.
lt_item-component = wa_upload-idnrk.
lt_item-comp_qty = wa_upload-menge.
lt_item-comp_unit = wa_upload-meins.
lt_item-item_text1 = wa_upload-potx1.
lt_item-item_text2 = wa_upload-potx2.
lt_item-sortstring = wa_upload-sortf. "ajouté par cuijunhu pour chanceux 20160811
lt_item-rel_engin = ''. "Signe: éléments liés au projet
lt_item-rel_cost = 'X'. "Marque: éléments liés à la comptabilité analytique
lt_item-rel_prod = 'X'. "Marque: articles liés à la production
ajoutez lt_item.
endloop.
vérifiez pv_rc et non «E».
écrire sy-datum dans datuv.
appeler la fonction 'CSAP_MAT_BOM_MAINTAIN'
exportation
matériau = pv_matnr
plante = pv_werks
bom_usage = pv_stlan
alternative = pv_stlal
valid_from = datuv
i_stko = stko
fl_bom_create = 'X'
fl_new_item = 'X'
fl_complete = 'X'
fl_commit_and_wait = 'X'
fl_default_values = 'X'
importation
o_stko = o_stko
les tables
t_stpo = lt_item
des exceptions
message_erreur = 1
erreur = 2
autres = 3.
si sy-subrc <> 0.
identifiant du message sy-msgid type sy-msgty numéro sy-msgno
avec sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 dans pv_msg.
pv_rc = 'E'.
autre.
pv_rc = 'S'.
fin si.
endform. "FRM_BOM_CREATE