SAP Tutoriel ABAP BDC (communication de données par lots)
Introduction à la saisie par lots
Le batch input est généralement utilisé pour transférer des données de systèmes non R/3 vers des systèmes R/3 ou pour transférer des données entre des systèmes R/3.
C'est une technique de transfert de données qui permet de transférer automatiquement des jeux de données vers des écrans appartenant à des transactions, et donc vers un SAP système. Le batch input est piloté par un dossier batch input.
Session de saisie par lots
Regroupe une série d'appels de transaction avec les données d'entrée et les actions de l'utilisateur. Une session batch input permet d'exécuter une opération de dialogue en batch input, où tout ou partie des écrans sont traités par la session. Les sessions de saisie par lots sont stockées dans la base de données sous forme de tables de base de données et peuvent être utilisées dans un programme comme tables internes lors de l'accès aux transactions.
Points à noter
- BDI fonctionne en effectuant des opérations normales SAP transactions comme le ferait un utilisateur, mais il exécute la transaction automatiquement.Toutes les validations d'écran et la validation de la logique métier seront effectuées lors de l'utilisation de la saisie de données par lots.
- Il convient à la saisie d’une grande quantité de données.
- Aucune interaction manuelle n'est requise
Méthodes de saisie par lots
SAP fournissent deux méthodes de base pour transférer les données existantes vers le système R/3.
- Méthode classique de saisie par lots.
- Appelez la méthode de transaction.
Méthode classique de saisie par lots
Dans cette méthode, un programme ABAP/4 lit les données externes vers le SAP Système et magasins dans une session batch input.
Après avoir créé la session, vous pouvez exécuter la session pour exécuter le SAP transaction dans celui-ci.
Cette méthode utilise les modules fonction BDC_ OPEN, BDC_INSERT et BDC_CLOSE
La session de saisie par lots peut être traitée de 3 manières
- Au premier plan
- en arrière-plan
- Pendant le traitement, avec affichage d'erreur
Vous devez traiter les dossiers batch input au premier plan ou à l'aide de l'affichage des erreurs si vous souhaitez tester le transfert de données.
Si vous souhaitez exécuter le transfert de données ou tester ses performances, vous devez traiter les sessions en arrière-plan.
Points à noter concernant la méthode de saisie par lots classique
- Synctraitement hroneux
- Transférez des données pour plusieurs transactions.
- Syncmise à jour chronologique de la base de données.
- Un journal du processus de saisie par lots est généré pour chaque session.
- La session ne peut pas être générée en parallèle.
Appelez la méthode de transaction.
Dans cette méthode ABAPLe programme /4 utilise l'instruction CALL TRANSACTION USING pour exécuter un SAP transaction.
L'ensemble du processus de saisie par lots s'effectue en ligne dans le programme
Points à noter:
- Traitement plus rapide des données
- Traitement asynchrone
- Transférez des données pour une seule transaction.
- Aucun protocole de traitement batch input n'est généré.
Procédures de saisie par lots
Vous observerez généralement la séquence d'étapes suivante pour développer Batch Input pour votre organisation
- Analyse des données existantes. Déterminez comment les données à transférer doivent être mappées dans le SAP Structure. Prenez également note des conversions nécessaires de type de données ou de longueur de données.
- Générer SAP structures de données à utiliser dans les programmes d’exportation.
- Exportez les données dans un fichier séquentiel. Notez que le format de caractère est requis par les paramètres prédéfinis. SAP programmes de saisie par lots.
- Si la SAP Les programmes BDC fournis ne sont pas utilisés, codez votre propre programme batch input. Choisissez une méthode de saisie par lots appropriée en fonction de la situation.
- Traitez les données et ajoutez-les au SAP Système.
- Analysez le journal du processus. Pour la méthode CALL TRANSACTION, où aucun journal approprié n'est créé, utilisez les messages collectés par votre programme.
- A partir des résultats de l’analyse du processus, corriger et retraiter les données erronées.
Rédaction du programme BDC
Vous pouvez observer le processus suivant pour écrire votre programme BDC
- Analyser la ou les transactions pour traiter les données batch input.
- Décidez de la méthode de saisie par lots à utiliser.
- Lire les données d'un fichier séquentiel
- Effectuez une conversion de données ou une vérification des erreurs.
- Stockage des données dans la structure batch input,BDCDATA.
- Générez un dossier batch input pour la saisie batch classique ou traitez les données directement avec l'instruction CALL TRANSACTION USING.
Structure des données d'entrée par lots
Déclaration de la structure des données batch input
DATA : BEGIN OF < bdc table> OCCURS <occurs parameters>. INCLUDE STRUCTURE BDCDATA. DATA:END OF <bdc table>.
Nom de domaine | Type | Longueur | Description |
---|---|---|---|
PROGRAMME | CARBONISER | 8 | Groupe de modules |
DYNPRO | NUMC | 4 | Numéro Dynpro |
DYNBÉGIN | CARBONISER | 1 | Démarrer un dynpro |
Fnam | CARBONISER | 35 | Nom de domaine |
FVAL | CARBONISER | 80 | Valeur du champ |
L'ordre des champs dans les données pour un écran particulier n'a aucune importance
Note à noter
- Lors du remplissage des données BDC, assurez-vous de prendre en compte les paramètres utilisateur. Ceci est particulièrement pertinent pour remplir des champs impliquant des nombres (comme la quantité, le montant). C'est le paramètre utilisateur qui décide du caractère de regroupement des nombres. Par exemple : un nombre cinquante mille peut être écrit sous la forme 50,000.00 50.000,00 ou en fonction du paramètre utilisateur.
- Condensez le champ FVAL pour les champs de montant et de quantité afin qu'ils soient alignés à gauche.
- Notez que tous les champs que vous remplissez via BDC doivent être traités comme des champs de type caractère lors du remplissage de la table de données BDC.
- Dans certains écrans, lorsque vous remplissez des valeurs dans un contrôle de table à l'aide de BDC, vous devez noter le nombre de lignes présentes sur une taille par défaut de l'écran et coder pour autant de lignes. Si vous devez remplir plus de lignes, vous devez coder pour la fonctionnalité « Page suivante » comme vous le feriez lorsque vous remplissez manuellement le contrôle de table.
- Le nombre de lignes qui apparaîtraient dans le scénario ci-dessus différera en fonction de la taille de l'écran utilisé par l'utilisateur. Codez donc toujours pour la taille d'écran standard et faites en sorte que votre BDC fonctionne toujours dans une taille d'écran standard, quelle que soit la taille d'écran que l'utilisateur conserve.
Création d'un dossier batch input
- Ouvrez le dossier batch input à l'aide du module fonction BDC_OPEN_GROUP.
- Pour chaque transaction de la session :
- Remplissez le BDCDATA avec les valeurs de tous les écrans et champs traités dans la transaction.
- Transférez la transaction vers la session avec BDC_INSERT.
- Fermez le dossier batch input avec BDC_CLOSE_GROUP
Enregistreur d'entrée par lots
L'enregistreur batch input (Système > Services > Batch input > Recorder) enregistre les transactions saisies manuellement et crée une session batch input qui peut être exécutée ultérieurement à l'aide de SM35.
- Démarrez l'enregistreur batch input en sélectionnant le bouton de commande Enregistrement dans l'écran initial du batch input.
- Le nom de l'enregistrement est un nom défini par l'utilisateur et peut correspondre au nom de la session batch input qui peut être créée à partir de l'enregistrement.
- Entrez SAP transaction et commencez à comptabiliser la transaction.
- Après avoir terminé de publier un SAP transaction, vous choisissez soit Obtenir la transaction et enregistrer pour terminer l'enregistrement, soit Transaction suivante et publier une autre transaction.
- Une fois l'enregistrement sauvegardé, vous pouvez créer un dossier batch input à partir de l'enregistrement et/ou générer un programme batch input à partir de l'enregistrement.
- Le dossier batch input que vous avez créé peut désormais être analysé comme n'importe quel autre dossier batch input.
- Le programme généré par la fonction de l'enregistreur batch input est un outil puissant pour le programmeur d'interface de données. Il constitue une base solide qui peut ensuite être modifiée selon les exigences du client.