Noter
Utilisez d'abord BAPI_PROCORDCONF_GET_TT_PROP pour obtenir les données d'un processus (heures de travail évaluées)
Cependant, le test a révélé que certains bons de travail n'étaient pas sortis pendant les heures de travail, et maintenant je l'oublie manuellement
Ensuite, utilisez
BAPI_PRODORDCONF_CREATE_TT Rapport d'ordre de fabrication
démo
* ol
boucle à gt_alv.
* lire la table gt_aufm_sum avec la clé aufnr = gt_alv-aufnr recherche binaire.
* si sy-subrc = 0.
* 1. Paramètres de données qui doivent être mis à jour
proposer clairement.
* propose-quantity = cn_flagx. "Mettre à jour la quantité
propose-date_and_time = cn_flagx. "Mettre à jour l'heure de la tâche
propose-goodsmovement = cn_flagx. "Mettre à jour le mouvement des marchandises
* 2. Durée de fonctionnement
clear: horaires, tickets horaires [].
timeickets-conf_no = gt_alv-rueck. "Confirmer
* timesickets-orderid = gt_alv-aufnr. "Numéro de ticket
* timesickets-operation = gt_alv-vornr. "numéro de l'opération
* timeickets-sequence = gt_alv-aplfl. "
timesickets-yield = gt_alv-menge. "Quantité de production de tickets
ajouter des fiches horaires.
des horaires clairs.
* 3. Attributs relatifs au mouvement des marchandises
* La première affectation, utilisée pour obtenir la valeur d'attribut par défaut appropriée
clear: mouvements de marchandises, mouvements de marchandises [].
Goodsmovements-orderid = gt_alv-aufnr. "Numéro d'ordre de fabrication
goodsmovements-order_itno = gt_alv-vornr. "Numéro de l'opération
ajouter des mouvements de marchandises.
Effacer les mouvements de marchandises.
* 4. Appelez BAPI pour obtenir la valeur d'attribut par défaut
fonction d'appel 'BAPI_PRODORDCONF_GET_TT_PROP'
exportation
propose = propose
importation
return = retour
les tables
tickets horaires = tickets horaires
mouvements de marchandises = mouvements de marchandises
link_conf_goodsmov = link_conf_goodsmov
detail_return = return_detail.
* 5. Sortie d'informations anormales
* si return-type = 'E' ou return-type = 'A'.
* concaténer le message de retour '错误 :' dans le message de retour.
* lv_result = cn_flagx.
* fin si.
*
* boucle à return_detail où le type n'est pas initial.
* si return_detail-type = 'E' ou return_detail-type = 'A'.
* concaténer '错误 :' return_detail-message dans return-message.
* lv_result = cn_flagx.
* fin si.
* boucle finale.
boucle aux tickets horaires.
timeickets-postg_date = gt_alv-budat.
timesickets-conf_activity1 = gt_alv-vgw01 * gt_alv-menge. "Certains tickets ne peuvent pas lire les heures de travail standard
timeickets-conf_acti_unit1 = gt_alv-vge01.
timeickets-conf_activity2 = gt_alv-vgw02 * gt_alv-menge.
timeickets-conf_acti_unit2 = gt_alv-vge02.
timeickets-conf_activity3 = gt_alv-vgw03 * gt_alv-menge.
timeickets-conf_acti_unit3 = gt_alv-vge03.
timeickets-conf_activity4 = gt_alv-vgw04 * gt_alv-menge.
timeickets-conf_acti_unit4 = gt_alv-vge04.
timeickets-conf_activity5 = gt_alv-vgw05 * gt_alv-menge.
timeickets-conf_acti_unit5 = gt_alv-vge05.
timeickets-conf_activity6 = gt_alv-vgw06 * gt_alv-menge.
timeickets-conf_acti_unit6 = gt_alv-vge06.
modifier les horaires.
endloop.
* 7. Appelez BAPI et présentez-vous au travail pour confirmation
clear: retour, retour [].
effacer: return_detail, return_detail [].
fonction d'appel 'BAPI_PRODORDCONF_CREATE_TT'
exportation
post_wrong_entries = '1'
testrun = '' "Identifié comme X, il s'agit d'un essai, non soumis au système
importation
return = retour
les tables
tickets horaires = tickets horaires
mouvements de marchandises = mouvements de marchandises
link_conf_goodsmov = link_conf_goodsmov
detail_return = return_detail.
effacez lv_result.
lire le retour de table avec le type de clé = 'E'.
si sy-subrc = 0.
concaténer le message de retour '错误 :' dans le message de retour.
lv_result = cn_flagx.
fin si.
boucle à return_detail où le type n'est pas initial.
si return_detail-type = 'E' ou return_detail-type = 'A'.
concaténer '错误 :' return_detail-message dans return-message.
lv_result = cn_flagx.
fin si.
endloop.
si lv_result ne cn_flagx.
appeler la fonction 'BAPI_TRANSACTION_COMMIT'
exportation
attendre = 'X'.
gt_alv-rtype = 'S'.
gt_alv-rtmsg = 'Succès'.
* Nombre total de lignes de production
lire l'index des horaires de table 1.
lt_ztpp0032n-zzline = gt_alv-zzline.
lt_ztpp0032n-budat = gt_alv-budat.
lt_ztpp0032n-lmnga = gt_alv-menge.
lt_ztpp0032n-ism01 = horaires-conf_activity1 ..
lt_ztpp0032n-aedat = sy-datum.
lt_ztpp0032n-aezet = sy-uzeit.
lt_ztpp0032n-aenam = sy-uname.
ajoutez lt_ztpp0032n.
autre.
appelez la fonction 'BAPI_TRANSACTION_ROLLBACK'.
gt_alv-rtype = 'E'.
gt_alv-rtmsg = message-de-retour.
fin si.
* fin si.
modifier gt_alv.
endloop.