SAP Урок за ABAP BDC (комуникация на пакетни данни).
Въведение в пакетното въвеждане
Пакетното въвеждане обикновено се използва за прехвърляне на данни от различни от R/3 системи към R/3 системи или за прехвърляне на данни между R/3 системи.
Това е техника за прехвърляне на данни, която ви позволява автоматично да прехвърляте набори от данни към екрани, принадлежащи на транзакции, и по този начин към SAP система. Пакетното въвеждане се контролира от сесия за пакетно въвеждане.
Сесия за пакетно въвеждане
Групира поредица от извиквания на транзакции заедно с входни данни и потребителски действия. Сесия за пакетно въвеждане може да се използва за изпълнение на диалогова транзакция при групово въвеждане, където някои или всички екрани се обработват от сесията. Сесиите за пакетно въвеждане се съхраняват в базата данни като таблици на база данни и могат да се използват в рамките на програма като вътрешни таблици при достъп до транзакции.
Точки за отбелязване
- BDI работи, като извършва нормално SAP транзакции точно както би направил потребителят, но изпълнява транзакцията автоматично.Всички проверки на екрана и валидиране на бизнес логиката ще се извършват, докато се използва пакетно въвеждане на данни.
- Подходящ е за въвеждане на големи количества данни.
- Не е необходимо ръчно взаимодействие
Методи за пакетно въвеждане
SAP предоставят два основни метода за прехвърляне на наследени данни в системата R/3.
- Класически метод на пакетно въвеждане.
- Метод на транзакция при повикване.
Класически метод на пакетно въвеждане
При този метод програма ABAP/4 чете външните данни на SAP Система и съхранява в сесия за групово въвеждане.
След като създадете сесията, можете да стартирате сесията, за да изпълните SAP сделка в него.
Този метод използва функционалните модули BDC_ OPEN, BDC_INSERT и BDC_CLOSE
Сесията за пакетно въвеждане може да се обработва по 3 начина
- На преден план
- На заден план
- По време на обработка, с показване на грешка
Трябва да обработвате сесии за пакетно въвеждане на преден план или да използвате дисплея за грешки, ако искате да тествате прехвърлянето на данни.
Ако искате да изпълните прехвърлянето на данни или да тествате неговата производителност, трябва да обработите сесиите във фонов режим.
Точки, които трябва да се отбележат относно класическия метод на пакетно въвеждане
- Syncхронична обработка
- Прехвърляне на данни за множество транзакции.
- Synchronous актуализация на база данни.
- За всяка сесия се генерира регистър на процеса на групово въвеждане.
- Сесията не може да се генерира паралелно.
Метод на транзакция при повикване.
При този метод ABAP/4 програмата използва оператор CALL TRANSACTION USING, за да изпълни SAP транзакция.
Целият процес на групово въвеждане се извършва онлайн в програмата
Точки за отбелязване:
- По-бърза обработка на данни
- Асинхронна обработка
- Прехвърляне на данни за една транзакция.
- Не се генерира регистрационен файл за обработка на пакетно въвеждане.
Процедури за пакетно въвеждане
Обикновено ще спазвате следната последователност от стъпки, за да разработите пакетно въвеждане за вашата организация
- Анализ на наследените данни. Определете как данните, които трябва да бъдат прехвърлени, да бъдат картографирани в SAP Структура. Също така обърнете внимание на необходимите преобразувания на тип данни или дължина на данните.
- Генериране SAP структури от данни за използване в програми за експортиране.
- Експортирайте данните в последователен файл. Обърнете внимание, че форматът на знаците се изисква от предварително зададения SAP програми за пакетно въвеждане.
- Ако SAP предоставените BDC програми не се използват, кодирайте своя собствена програма за пакетно въвеждане. Изберете подходящ метод за групово въвеждане според ситуацията.
- Обработете данните и ги добавете към SAP Система.
- Анализирайте дневника на процеса. За метода CALL TRANSACTION, където не се създава правилен журнал, използвайте съобщенията, събрани от вашата програма.
- От резултатите от анализа на процеса коригирайте и обработете повторно грешните данни.
Писане на BDC програма
Можете да наблюдавате следния процес, за да напишете вашата BDC програма
- Анализирайте транзакцията(ите), за да обработите пакетно въведени данни.
- Решете метода на групово въвеждане, който да използвате.
- Четене на данни от последователен файл
- Извършете преобразуване на данни или проверка на грешки.
- Съхраняване на данните в структурата за групово въвеждане, BDCDATA.
- Генерирайте сесия за пакетно въвеждане за класическо пакетно въвеждане или обработете данните директно с оператор CALL TRANSACTION USING.
Структура на пакетните входни данни
Декларация на структурата на пакетните входни данни
DATA : BEGIN OF < bdc table> OCCURS <occurs parameters>. INCLUDE STRUCTURE BDCDATA. DATA:END OF <bdc table>.
Име на полето | Тип | Дължина | Descriptйон |
---|---|---|---|
ПРОГРАМА | CHAR | 8 | Модулен басейн |
DYNPRO | NUMC | 4 | Dynpro номер |
DYNBEGIN | CHAR | 1 | Стартиране на dynpro |
FNAM | CHAR | 35 | Име на полето |
FVAL | CHAR | 80 | Стойност на полето |
Редът на полетата в данните за даден екран не е от никакво значение
Посочва забележка
- Докато попълвате BDC данните, уверете се, че сте взели под внимание потребителските настройки. Това е особено подходящо за попълване на полета, които включват числа (като количество, сума). Това е потребителската настройка, която определя кой е групиращият знак за числа. Например: Число петдесет хиляди може да бъде записано като 50,000.00 50.000,00 или XNUMX XNUMX въз основа на потребителската настройка.
- Съкратете полето FVAL за полетата за сума и количество, така че да са подравнени вляво.
- Обърнете внимание, че всички полета, които попълвате чрез BDC, трябва да се третират като полета от символен тип, докато попълвате таблицата с BDC данни.
- В някои екрани, когато попълвате стойности в контрола на таблица с помощта на BDC, трябва да отбележите колко на брой редове присъстват в размер по подразбиране на екрана и да кодирате толкова редове. Ако трябва да попълните повече редове, тогава трябва да кодирате функционалността „Page down“, както бихте направили, когато попълвате контролата на таблицата ръчно.
- Броят на редовете, които ще се появят в горния сценарий, ще се различава в зависимост от размера на екрана, който потребителят използва. Затова винаги кодирайте за стандартен размер на екрана и накарайте вашия BDC да работи винаги в стандартен размер на екрана, независимо от това какъв размер на екрана поддържа потребителят.
Създаване на сесия за пакетно въвеждане
- Отворете сесията на сесията за пакетно въвеждане, като използвате функционален модул BDC_OPEN_GROUP.
- За всяка транзакция в сесията:
- Попълнете BDCDATA със стойности за всички екрани и полета, обработени в транзакцията.
- Прехвърлете транзакцията към сесията с BDC_INSERT.
- Затворете сесията за пакетно въвеждане с BDC_CLOSE_GROUP
Записващо устройство за пакетно въвеждане
Записващо устройство за пакетно въвеждане (Система > Услуги > Пакетно въвеждане > Записващо устройство) записва транзакции, които са въведени ръчно, и създава сесия за пакетно въвеждане, която може да бъде изпълнена по-късно с помощта на SM35.
- Стартирайте записващото устройство за партидно въвеждане, като изберете бутона Записване от началния екран за партидно въвеждане.
- Името на записа е дефинирано от потребителя име и може да съответства на името на сесията за пакетно въвеждане, което може да бъде създадено от записа.
- Въведете SAP транзакция и започнете да публикувате транзакцията.
- След като завършите публикуването на a SAP транзакция, изберете или Получаване на транзакция и запазване, за да прекратите записа, или Следваща транзакция и публикуване на друга транзакция.
- След като запазите записа, можете да създадете сесия за групово въвеждане от записа и/или да генерирате програма за групово въвеждане от записа.
- Създадената от вас сесия за пакетно въвеждане вече може да бъде анализирана точно както всяка друга сесия за пакетно въвеждане.
- Програмата, която се генерира от функцията на записващото устройство за пакетно въвеждане, е мощен инструмент за програмиста на интерфейса за данни. Той осигурява солидна основа, която след това може да бъде променяна според изискванията на клиента.