Programme :: RFEBKA00
Alterados ::
format_itau(j_1bbr20).
Contexte ::
FORMULAIRE INSERT_FEBEP_G.
TYPES : DÉBUT DE TY_BSIK,
TYPE BUKRS
ANNEE TYPE ANNEE,
N° de document
FIN DE TY_BSIK.
Données : BELNR TYPE BELNR_D.
Données : W_BSIK TYPE BSIK.
CLEAR : BELNR, W_BSIK.
******************AJOUT DE MODIFICATIONS BRÉSIL
PHASE2*******************
TYPE DE FOURNISSEUR LIFNR.
******************ADDITION DE CHANGEMENTS BRÉSIL
PHASE2*******************
CLARTÉ FEBEP.
FEBEP-KUKEY = FEBKO-KUKEY.
FEBEP-ESNUM = SY-TABIX.
FEBEP-KWAER = FEBKO-WAERS. QHA941208
*Code de transaction externe pour Febraban et ITAU (Code de mouvement)
FEBEP-VGEXT = ARTICLES_P_G-G07.
* La date de sortie devient la date de réservation de l'élément individuel
FEBEP-BUDAT = FEBKO-AZDAT.
SI ITEMS_P_G-G28 = ESPACE
OU ITEMS_P_G-G28 = '00000000'.
FEBEP-BVDAT = FEBKO-AZDAT.
AUTRE.
FEBEP-BVDAT(4) = ITEMS_P_G-G28+4(4). yyyy
FEBEP-BVDAT+4(2) = ITEMS_P_G-G28+2(2). mm
FEBEP-BVDAT+6(2) = ITEMS_P_G-G28(2). dd
FEBEP-BUDAT = FEBEP-BVDAT.
FIN SI.
FEBEP-VALUT = FEBEP-BVDAT.
K Type de compte
ITEMS_P_G-G16
* FEBEP-GJAHR = ARTICLES_P_G-G28+4(4).
Année fiscale à partir de la date de génération du fichier dans l'en-tête
FEBEP-GJAHR = EN-TÊTE_P-H117+4(4).
* cas febko-absnd(3).
* quand '341'. Itau
* febep-chect = items_p_j-j22. Duplicata bancaire
* febep-kidno = articles_p_j-j22. REF3 note 383985
* quand les autres. Febraban
* febep-chect = éléments_p_j-j21. Duplicata de banque
* febep-kidno = éléments_p_j-j21. REF3 note 383985
Pas clair au sujet de Nosso Numero dans le segment G
* fin de cas.
* FEBEP-VOZEI = 'D'.
S seulement paiement normal ici
FEBEP-KWBTR = ARTICLES_P_G-G18.
FEBEP-KWBTR = FEBEP-KWBTR / 100.
FEBKO-SUMSO = FEBKO-SUMSO + FEBEP-KWBTR.
* Identifier le processus interne
EXÉCUTER VORGANG_ERMITTELN.
* L'attribution est remplie avec KUKEY et ESNUM -> machine
Déchiffrer
FEBEP-ZUONR+0(8) = FEBEP-KUKEY.
FEBEP-ZUONR+8(5) = FEBEP-ESNUM.
*Remplissez FEBEP-XBLNR avec le numéro NF/Document de Collection
nombre
FEBEP-XBLNR = ARTICLES_P_G-G21.
EXÉCUTER REMPLIR_BUTXT_AVEC_VGINTTXT.
*Vérifiez si le numéro de document dans le fichier dans le Segment G est le fournisseur
numéro de facture
*Sinon, trouvez le numéro de facture du fournisseur dans la collecte
Numéro de document/numéro NF dans le fichier
SÉLECTIONNER UNIQUE BUKRS
ANNEE
BELNR
DE BSIK
DANS W_BSIK
OÙ BUKRS = FEBKO-BUKRS
ET GJAHR = FEBEP-GJAHR
ET BELNR = ITEMS_P_G-G21.
SI SY-SUBRC = 0.
BELNR = ITEMS_P_G-G21.
SINON.
EXÉCUTER GET_BELNR EN UTILISANT ITEMS_P_G-G21
FEBKO-BUKRS
CNPJ/CPF
CHANGEMENT D'ARTICLES_P_G-G15
NUMÉRO DE DOCUMENT
FEBEP-ANNEE
******************AJOUT DE MODIFICATIONS BRÉSIL
PHASE2*******************
FOURNISSEUR.
******************AJOUT DES CHANGEMENTS BRÉSIL
PHASE2*******************
Remarque 1744913
AMÉLIORATION-POINT DDA_BR_POINT SPOTS DDA_BR_SPOTS.
*$*$-Début: DDA_BR_POINT---------------------------------------------------------
---------------$*$*
fim Contexte..
Note 1744913
AMÉLIORATION - POINT DDA_BR_POINT SPOTS DDA_BR_SPOTS.
* Pour rechercher correctement le document, nous devons retirer des caractères
spéciales du domaine de la NF.
TYPES: BEGIN OF ys_lifnr,
lifnr TYPE lfa1-lifnr
FIN de ys_lifnr.
DONNÉES : lc_xblnr TYPE bsid-xblnr,
lc_xbln2 TYPE bsid-xblnr,
lc_dummy
lt_lifnr TYPE TABLE OF ys_lifnr,
ls_bsik TYPE bsik,
TYPE c LONGUEUR 20
lc_stcd1 TYPE lfa1-stcd1,
lc_stcd2 TYPE lfa1-stcd2.
Vérifiez si vous n'avez pas encore trouvé le document
SI belnr EST INITIAL.
items_p_g-g21.
Condensa
CONDENSER lc_xblnr.
TRANSFORME TOUTES LES LETTRES EN MAJUSCULE
LC_XBLNR
Supprime toutes les lettres
ABCDEFGHIJKLMNOPQRSTUV
W X Y Z '.
Supprimer les espaces à gauche
DEPLACER lc_xblnr À GAUCHE EN SUPPRIMANT LES ESPACES EN TÊTE.
Supprimer les zéros à gauche
DÉPLACER lc_xblnr À GAUCHE EN SUPPRIMANT LE '0' DE DEVANT.
Supprimer les caractères spéciaux et mettre un espace
-/.
Utilisez la première chaîne de caractères, jusqu'à l'espace
DIVISER lc_xblnr À l'espace EN lc_xblnr lc_dummy.
Rechercher des fournisseurs possibles
EFFACER lt_lifnr.
Recherche par CNPJ et CPF
Teste le CNPJ
lc_stcd = items_p_g-g15.
DÉPLACER lc_stcd À GAUCHE.
lc_stcd.
SÉLECTIONNER lifnr
DE lfa1
DANS LA TABLE lt_lifnr
OÙ stcd1 ÉGAL lc_stcd1.
Si vous ne trouvez pas, testez le CPF
SI lt_lifnr EST INITIAL.
lc_stcd = éléments_p_g-g15.
DÉPLACER lc_stcd À GAUCHE DE 4 PLACES.
lc_stcd2 = lc_stcd.
SÉLECTIONNER lifnr
DE lfa1
DANS LA TABLE lt_lifnr
OÙ stcd2 ÉGAL lc_stcd2.
FIN SI.
SI lt_lifnr N'EST PAS INITIAL.
Recherche de documents
SÉLECTIONNER *
DE bsik
DANS ls_bsik
POUR TOUS LES ENTRIES DANS lt_lifnr
OÙ bukrs EQ febko-bukrs ET
lifnr EQ lt_lifnr-lifnr.
Formate le xblnr du document
lc_xbln2 = ls_bsik-xblnr.
CONDENSER lc_xbln2.
TRANSFORME TOUTES LES LETTRES EN MAJUSCULE
LC_XBLN2
Enlevez toutes les lettres
lc_xbln2 utilisant 'A B C D E F G H I J K L M N O P Q R S T U
V W X Y Z '.
Retirer les espaces à gauche
DEPLACER lc_xbln2 À GAUCHE EN SUPPRIMANT LES ESPACES DE TÊTE.
Supprimer les zéros à gauche
DECALER lc_xbln2 À GAUCHE EN SUPPRIMANT LE '0' DE DEBUT.
Enlever les caractères spéciaux et mettre des espaces
lc_xbln2 utilisant '- / . '
Utilisez la première chaîne de caractères, jusqu'à l'espace
SPLIT lc_xbln2 AU espace EN lc_xbln2 lc_dummy.
Compare les deux XBLNR
SI lc_xbln2 EQ lc_xblnr.
ls_bsik-xblnr.
Sai du sélection
SORTIE.
FIN SI.
FIN DE SÉLECTION.
FIN SI.
Effectuez la recherche du document
EXÉCUTER get_belnr UTILISANT lc_xblnr
febko-bukrs
CHANGEMENT d'items_p_g-g15 CNPJ/CPF
belnr
febep-gjahr
vendeur.
FIN SI.
AMÉLIORATION DE FIN
format_bradesco(j_1bbr30).
Contexte
FORM GET_BELNR UTILISANT iv_belnr
iv_xblnr
iv_code_comp
année_iv
iv_cnpj
CHANGEMENT cv_belnr
cv_fournisseur.
Données : flag_found TYPE c.
CLAIR: cv_fournisseur,cv_belnr,flag_trouvé,
gs_bsik,gt_bsik.
Vérifiez si le numéro de document dans le fichier est la facture du fournisseur
numéro
EFFECTUER CHECK_IF_DOC_IS_VENDOR_INVOICE EN UTILISANT iv_comp_code
iv_année
CHANGEMENT de cv_belnr.
SI cv_belnr EST INITIAL.
EXÉCUTER IF_DOC_IS_COLLECTION_DOCUMENT EN UTILISANT
iv_code_comp
CHANGING flag_found.
SI flag_found eq espace.
Récupérez le document basé sur le numéro de Nota fiscal
SÉLECTIONNER bukrs belnr gjahr xblnr DE bsik DANS
CHAMPS CORRESPONDANTS DE LA TABLE gt_bsik
OÙ bukrs = iv_comp_code
ET gjahr = iv_year
ET xblnr = iv_xblnr
ET bstat = espace.
FIN SI.
FIN SI.
SI gt_bsik[] N'EST PAS INITIAL.
trier gt_bsik.
supprimer les doublons adjacents de gt_bsik en comparant tous les champs.
EXÉCUTER GET_UNIQUE_BELNR EN UTILISANT iv_cnpj CHANGEMENT cv_belnr
cv_vendeur
FIN SI.
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
$"$\SE:(1) Form. GET_BELNR, Fim
A
*$*$-Début : (1)--------------------------------------------------------------------------
-------$*$*
fim Contexte
AMÉLIORATION 1 ZEHSD002. "version active
* Si aucun document n'est trouvé, essayez la recherche alternative
* Pour rechercher correctement le document, nous devons retirer les caractères
spéciaux du domaine de la NF.
TYPES : DÉBUT DE ys_lifnr,
lifnr TYPE lfa1-lifnr,
FIN DE ys_lifnr.
Données: lc_xblnr TYPE bsid-xblnr,
lc_xbln2 TYPE bsid-xblnr,
lc_dummy
lt_lifnr TYPE TABLE OF ys_lifnr,
ls_bsik TYPE bsik,
lc_stcd TYPE c LENGTH 20,
lc_stcd1 TYPE lfa1-stcd1,
lc_stcd2 TYPE lfa1-stcd2.
Vérifiez si vous n'avez pas encore trouvé le document
SI gt_bsik[] EST INITIAL.
iv_xblnr.
Condensa
CONDENSER lc_xblnr.
TRANSFORME TOUTES LES LETTRES EN MAJUSCULE
LC_XBLNR
Supprime toutes les lettres
ABCDEFGHIJKLMNOPQRSTUV
WXYZ'.
Supprimer les espaces à gauche
DECALER lc_xblnr À GAUCHE EN SUPPRIMANT les espaces de tête.
Retirer les zéros à gauche
DÉPLACER lc_xblnr À GAUCHE EN SUPPRIMANT LE PREFIXE '0'.
Retirez les caractères spéciaux et mettez un espace
-/.
Utilisez la première chaîne de caractères, jusqu'à l'espace
DIVISER lc_xblnr À l'espace EN lc_xblnr lc_dummy.
Cherche des fournisseurs possibles
EFFACER lt_lifnr.
Recherche par CNPJ et CPF
Teste le CNPJ
iv_cnpj.
DÉPLACER lc_stcd À GAUCHE.
lc_stcd.
SÉLECTIONNER lifnr
DE lfa1
DANS LA TABLE lt_lifnr
OÙ stcd1 EQ lc_stcd1.
Si vous ne trouvez pas, essayez le CPF
SI lt_lifnr EST INITIAL.
lc_stcd = iv_cnpj.
DÉPLACER lc_stcd À GAUCHE DE 4 PLACES.
lc_stcd2 = lc_stcd.
SÉLECTIONNER lifnr
DE lfa1
DANS LA TABLE lt_lifnr
Où stcd2 EQ lc_stcd2.
FIN SI.
SI lt_lifnr N'EST PAS INITIAL.
Cherchez des documents
SÉLECTIONNER *
DE bsik
DANS ls_bsik
POUR ENTRER DANS lt_lifnr
OÙ bukrs EQ febko-bukrs ET
lifnr EQ lt_lifnr-lifnr.
Formate le xblnr du document
lc_xbln2 = ls_bsik-xblnr.
CONDENSER lc_xbln2.
TRANSFORMA TODAS LETRAS EM MAIÚSCULO
LC_XBLN2
Retirez toutes les lettres
lc_xbln2 utilisant 'A B C D E F G H I J K L M N O P Q R S T U
V W X Y Z '.
Retirer les espaces à gauche
DÉPLACER lc_xbln2 À GAUCHE EN SUPPRIMANT L'ESPACE DE DéBUT.
Supprimer les zéros à gauche
DÉCALER lc_xbln2 À GAUCHE EN SUPPRIMANT LE PRÉFIXE '0'.
Supprimer les caractères spéciaux et mettre de l'espace
lc_xbln2 utilisant '- / . '
Utilisez la première chaîne de caractères, jusqu'à l'espace
DIVISER lc_xbln2 À l'espace EN lc_xbln2 lc_dummy.
Compare les deux XBLNR
SI lc_xbln2 EQ lc_xblnr.
ls_bsik-xblnr.
Sai du select
SORTIE.
FIN SI.
FINDESELECTION.
FIN SI.
SI flag_found EQ espace.
Récupérez le document en fonction du numéro de la Nota fiscale
SÉLECTIONNER bukrs belnr gjahr xblnr DE bsik
DANS LES CHAMPS CORRESPONDANTS DE LA TABLE gt_bsik
OÙ bukrs = iv_comp_code
ET gjahr = iv_year
ET xblnr = lc_xblnr
ET bstat = espace.
FIN SI.
SI gt_bsik[] N'EST PAS INITIAL.
TRIER gt_bsik.
SUPPRIMER LES DOUBLONS ADJACENTS DE gt_bsik EN COMPARANT TOUS
CHAMPS.
EXÉCUTER get_unique_belnr EN UTILISANT iv_cnpj CHANGING cv_belnr
cv_fournisseur
FIN SI.
FIN SI.
INCLURE RFFOBR_DDA_O00
Contexte
FORM EN UTILISANT r_ucomm COMME sy-ucomm
rs_selfield TYPE slis_selfield.
DATA: flag_cnpj TYPE c,
flag_cpf TYPE c,
flag_amount TYPE c,
flag_duedate TYPE c,
drapeau_une_fois TYPE c.
DATA: w_dda_new TYPE ty_dda.
w_dda_old TYPE j1b_error_dda,
w_dda_mod TYPE j1b_error_dda.
DATEECHÉANCE_FINALE TYPE regup-zfbdt.
DATA: lin TYPE c.
pline COMME bseg-buzei,
mode(1) TYPE c.
DONNÉES : lv_awkey TYPE awkey.
DONNÉES : lv_montant TYPE bseg-wrbtr,
lv_due_date COMME regup-zfbdt.
lv_fis_anné TYPE gjahr. changement d'exercice fiscal
DATA: lv_due_date_del(8) TYPE c.
CAS r_ucomm.
QUAND '&IC1'.
LIRE LA TABLE i_dda_1 DANS w_dda_1 INDEX rs_selfield-
tabindex.
VÉRIFIER sy-subrc = 0.
SI rs_selfield-fieldname = 'LIFNR'.
DEFINIR L'IDENTIFIANT DE PARAMÈTRE 'LIF' CHAMP w_dda_1-lifnr.
SET PARAMETER ID 'BUK' FIELD w_dda_1-bukrs.
APPELER LA TRANSACTION 'FK03' ET SAUTER LE PREMIER ÉCRAN.
FIN SI.
SI rs_selfield-nom_du_champ = 'DOC_NUM'.
DEFINIR L'IDENTIFIANT DE PARAMÈTRE 'BLN' CHAMP w_dda_1-doc_num.
DEFINIR L'IDENTIFIANT PARAMÈTRE 'BUK' CHAMP w_dda_1-bukrs.
DEFINIR L'IDENTIFIANT DE PARAMÈTRE 'GJR' CHAMP w_dda_1-gjahr.
APPELEZ LA TRANSACTION 'FB03' ET SAUTEZ LE PREMIER ÉCRAN.
FIN SI.
SI rs_selfield-nom_du_champ = 'MIRO_FACTURE'.
DÉFINIR L'IDENTIFIANT DE PARAMÈTRE 'RBN' CHAMP w_dda_1-miro_invoice.
DEFINIR L'IDENTIFIANT DE PARAMÈTRE 'GJR' CHAMP w_dda_1-gjahr.
APPELER LA TRANSACTION 'MIR4' ET PASSER LE PREMIER ÉCRAN.
FIN SI.
CLARIFIER w_dda_1.
FIN DU CAS.
SI r_ucomm EQ 'DEL'.
FAIRE UNE BOUCLE SUR i_dda_1 EN INTO w_dda_1 OÙ sel = 'X'.
v_index = sy-tabix.
SUPPRIMER i_dda_1 INDEX v_index.
Note 1781726
w_dda_1-date_d'échéance+6(2).
lv_due_date_del+2(2) = w_dda_1-date_due+4(2).
lv_due_date_del+4(4) = w_dda_1-due_date+0(4).
SUPPRIMER DE j1b_error_dda OÙ id = w_dda_1-id ET
status_check = w_dda_1-vérification_du_statut ET
lifnr = w_dda_1-lifnr ET
reference_no = w_dda_1-reference_no ET
doc_num = w_dda_1-doc_num ET
miro_facture = w_dda_1-miro_facture ET
bukrs = w_dda_1-bukrs ET
gjahr = w_dda_1-gjahr ET
cnpj = w_dda_1-cnpj ET
date_d'échéance = lv_date_d'échéance_del.
FIN BOUCLE.
* supprimer i_dda où sel eq 'X'.
X
FIN SI.
****Post-traitement DDA
enregistrements***********************************
SI r_ucomm EQ 'PROCESS'.
BOUCLE SUR i_dda_1 EN INTO w_dda_1 OÙ sel = 'X' ET
E
LIRE LA TABLE i_dda DANS w_dda_new AVEC CLÉ status_check =
w_dda_1-vérification_d'état
w_dda_1-lifnr
w_dda_1-numéro_de_référence
doc_num = w_dda_1-doc_num
w_dda_1-miro_invoice
w_dda_1-bukrs
w_dda_1-gjahr
w_dda_1-cnpj.
DEPLACER-CORRESPONDANT w_dda_new VERS w_dda_mod.
DÉPLACER-CORRESPONDANT w_dda_new VERS w_dda_old.
EFFACER
drapeau_une_fois
lv_montant
gv_vendeur.
SI w_dda_mod-doc_num N'EST PAS INITIAL ET ( w_dda_mod-
err_reason = 'C' OU
w_dda_mod-err_reason = 'D' OU w_dda_mod-err_reason = 'A'.
lv_montant = w_dda_mod-montant.
SÉLECTIONNER * DE bseg DANS TABLE gt_bseg OÙ bukrs =
w_dda_mod-bukrs ET
belnr = w_dda_mod-doc_num ET gjahr =
w_dda_mod-année
* ET dmbtr = lv_amount "Note 1887451
ET koart = 'K'.
SINON.
sélectionner bukrs belnr gjahr xblnr de bsik dans correspondant
champs de la table gt_bsik
OÙ bukrs = w_dda_mod-bukrs
ET gjahr = w_dda_mod-gjahr
ET xblnr = w_dda_mod-reference_no
ET bstat = espace.
*******************CHANGEMENTS D'EXERCICE FISCAL............
SI sy-subrc NE 0.
lv_fis_year = w_dda_mod-gjahr + 1.
SI lv_fis_year EQ sy-datum(4).
sélectionner bukrs belnr gjahr xblnr de bsik dans correspondant
champs de la table gt_bsik
OÙ bukrs = w_dda_mod-bukrs
ET gjahr = sy-datum(4)
ET xblnr = w_dda_mod-reference_no
ET bstat = espace.
si sy-subrc = 0.
w_dda_mod-gjahr = sy-datum(4).
fin si.
FIN SI.
FIN SI.
**************************************************
trier gt_bsik.
supprimer les doublons adjacents de gt_bsik.
SI gt_bsik[] N'EST PAS INITIAL.
EXÉCUTER get_unique_belnr en utilisant w_dda_mod-cnpj.
FIN SI.
SI gv_vendor N'EST PAS INITIAL ET gv_belnr N'EST PAS INITIAL.
*Trouvez le bon article dans une facture fournisseur où le code-barres doit être
être
*mis à jour et vérifiez également la date d'échéance...
clair : lv_awkey.
lv_montant = w_dda_mod-montant.
SELECT * FROM bseg INTO TABLE gt_bseg WHERE bukrs =
w_dda_mod-bukrs
ET belnr = gv_belnr
ET gjahr = w_dda_mod-gjahr
* ET dmbtr = lv_amount "Note
1887451
ET koart = 'K'.
SÉLECTIONNEZ UNIQUE awkey DANS lv_awkey DE bkpf OÙ
w_dda_mod-bukrs
ET belnr = gv_belnr
ET gjahr = w_dda_mod-gjahr
ET awtyp = 'RMRP'.
w_dda_mod-doc_num = gv_belnr.
w_dda_mod-lifnr = gv_vendor.
w_dda_mod-miro_invoice = lv_awkey(10).
FIN SI.
ENDIF.
Fim contexte
Note 1744913
POINT D'AMÉLIORATION RFFOBR_DDA_POINT SPOTS
RFFOBR_DDA_SPOT
*$*$-Début : RFFOBR_DDA_POINT--------------------------------------------------
------------------$*$*
AMÉLIORATION 1 ZEHSD003. "version active
Vérifie les articles avec erreur et essaie de trouver la référence correcte
TYPES : DÉBUT DE ys_lifnr,
lifnr TYPE lfa1-lifnr,
FIN de ys_lifnr.
DONNÉES : lc_xblnr TYPE bsid-xblnr
lc_xbln2 TYPE bsid-xblnr,
lc_dummy
lt_lifnr TYPE TABLE OF ys_lifnr,
ls_bsik TYPE bsik,
lc_stcd TYPE c LENGTH 20
lc_stcd1 TYPE lfa1-stcd1,
lc_stcd2 TYPE lfa1-stcd2.
S'il n'a pas été trouvé dans le standard
SI gt_bseg[] EST INITIAL.
Vérifie les éléments
w_dda_new-numéro_de_référence
Condensa
CONDENSER lc_xblnr.
TRANSFORME TOUTES LES LETTRES EN MAJUSCULE
LC_XBLNR
Enlevez toutes les lettres
lc_xblnr EN UTILISANT 'A B C D E F G H I J K L M N O P Q R S T U
V W X Y Z '.
Retirer les espaces à gauche
DÉPLACER lc_xblnr À GAUCHE EN SUPPRIMANT L'ESPACE DE TÊTE.
Retirer les zéros à gauche
DÉPLACER lc_xblnr À GAUCHE EN SUPPRIMANT LES ZÉROS INITIAUX.
Retirer les caractères spéciaux et ajouter de l'espace
lc_xblnr utilisant '- / . '.
Utilisez la première chaîne de caractères, jusqu'à l'espace
DIVISER lc_xblnr À l'espace EN lc_xblnr lc_dummy.
Cherchez des fournisseurs possibles
EFFACER lt_lifnr.
Recherche par CNPJ et CPF
Teste le CNPJ
lc_stcd = w_dda_new-cnpj.
DÉPLACER lc_stcd À GAUCHE.
lc_stcd.
SÉLECTIONNER lifnr
DE lfa1
DANS LA TABLE lt_lifnr
OÙ stcd1 EQ lc_stcd1.
Si tu ne trouves pas, essaie le CPF
SI lt_lifnr EST INITIAL.
w_dda_new-cnpj.
DÉPLACEZ lc_stcd À GAUCHE DE 4 PLACES.
lc_stcd2 = lc_stcd.
SELECT lifnr
DE lfa1
DANS LA TABLE lt_lifnr
OÙ stcd2 EQ lc_stcd2.
FIN SI.
SI lt_lifnr N'EST PAS INITIAL.
Rechercher des documents
SÉLECTIONNER *
DE bsik
DANS ls_bsik
POUR TOUS LES ENTRÉES DANS lt_lifnr
OÙ bukrs EQ w_dda_new-bukrs ET
gjahr EQ w_dda_new-gjahr ET
lifnr EQ lt_lifnr-lifnr.
Formate le xblnr du document
lc_xbln2 = ls_bsik-xblnr.
CONDENSER lc_xbln2.
TRANSFORMA TODAS LETRAS EM MAIÚSCULO
LC_XBLN2
Enlevez toutes les lettres
lc_xbln2 utilisant 'A B C D E F G H I J K L M N O P Q R S T
U V W X Y Z '.
Supprimer les espaces à gauche
DÉPLACER lc_xbln2 À GAUCHE EN SUPPRIMANT L'ESPACE DE DÉBUT.
Supprimer les zéros à gauche
DÉCALER lc_xbln2 À GAUCHE EN SUPPRIMANT LE '0' DE TÊTE.
Supprimer les caractères spéciaux et mettre un espace
lc_xbln2 en utilisant '- / . '.
Utilisez la première chaîne de caractères, jusqu'à l'espace
SPLIT lc_xbln2 À l'espace DANS lc_xbln2 lc_dummy.
Compare les deux XBLNR
SI lc_xbln2 EQ lc_xblnr.
w_dda_mod-doc_num = ls_bsik-belnr.
w_dda_mod-lifnr = ls_bsik-lifnr.
Cherchez la référence
SELECT SINGLE awkey INTO lv_awkey FROM bkpf WHERE bukrs
= w_dda_mod-bukrs
ET belnr = w_dda_mod-doc_num
ET gjahr = w_dda_mod-gjahr
ET awtyp = 'RMRP'.
w_dda_mod-miro_facture = lv_awkey(10).
Fais la recherche de la BSEG
SÉLECTIONNER * DE bseg DANS TABLE gt_bseg OÙ bukrs =
w_dda_mod-bukrs ET
belnr = w_dda_mod-doc_num ET gjahr = w_dda_mod-
année
* ET dmbtr = lv_amount "Note 1887451
ET koart = 'K'.
Sortez du select
SORTIE.
FINSI.
FIN DE LA SÉLECTION.
FIN SI.
FIN SI.
AMÉLIORATION DE LA FIN
*$*$-Fin: RFFOBR_DDA_POINT--------------------------------------------------
------------------$*$*