ПредишенСледващото

Дистанционно извикване на функция (RFC, дистанционно извикване на функция) - стандартен интерфейс за обмен на данни между SAP и не-SAP системи. интерфейс данни въз основа на CPI-C или TCP / IP. Стандартна библиография на RFC или BC415 разбира се.

Удобства RFC функции

  • Когато се обадите на ФМ на местно ниво, тя работи в една и съща последователност от действия, който се обажда. Ако се обадите на FM дистанционно и може да работи в отделен работен процес (LER - LUW, логическа единица работа), ако системата за дистанционно е / 3 система R.
  • Както отдалечените системи могат да бъдат R / 3 система, R / 2 система или друго извън не SAP система за не-SAP системи има специална RFC-SDK библиотека, от която RFC на клиент-сървър може да бъде изпълнена.
  • Когато се обадите на модула RFC в програмата наричайки го задейства неявна DB Ангажиране (изключение tRFC, qRFC, bgRFC). Ето защо, RFC разговори не трябва да са между оператори OpenSQL.
  • В FM RFC интерфейс трябва изрично да се определи вида на всеки параметър, препратка (подобни) са забранени.

Присвояване на RFC разговори

Присвояване на RFC разговор се определя от ДЕСТИНАЦИЯ ключова дума. Като параметър може да приеме име на отдалечена система, пространство, НЯМА ГРЪБ.

  • SPACE - местен FM повикване (по подразбиране). Ако не зададете параметрите дестинация RFC обаждания, функцията ще се извършва на местно ниво, както обикновено, без да се създава своя LUW.
  • NONE - Стартиране на местно ниво, е същият, като основната разлика е, че обаждането идва на настройките на врата и е регистрирана като дистанционното повикването. Създайте свой DB LUW.
  • ОБРАТНО - използва се в синхронните функции RFC да тече RFC функции в системата, която ги е причинило.

Обработка на изключенията с RFC разговори

Когато се обадите RFC следните изключения могат да се появят модул:

  • COMMUNICATION_FAILURE - възниква, когато връзката не е конфигурирана за определената система в областта на местоназначението, или когато не може да бъде осъществено.
  • SYSTEM_FAILURE - се случва, когато системата за дистанционно не съществува Callee, или в случай на други проблеми в RFC разговори.
  • RESOURCE_FAILURE - се случва, когато ти се обадя на асинхронен RFC, ако няма свободни ресурси на групата на сървъра на приложения.

Видове RFC функции:

  1. SinhronnyeRFC (sRFC) - когато се обаждате sRFC работния процес спира своята работа, стига да не се изпълнява sRFC модул. Модул се изпълнява в отделна DB LUW.

В случая, когато се обадите няколко sRFC ред на група от функции, глобални данни на функционалната група, ще бъдат достъпни за толкова дълго, колкото има, няма да бъдат причинени от последната функция на групата.

Ако SRFC само по себе си води до CALL SCREEN, обадете се по прехвърлянето или покаже списък, причинени от екраните ще се появи в програмата ще започне SRFC, но само ако SM59 Set интерактивен отдалечен достъп, в противен случай системата ще хвърли изключение SYSTEM_FAILURE.

  1. AsinhronnyeRFC призовава (aRFC) - далечна функция започва да работи веднага след неговото паралелен разговор, работния процес не спира неговото действие. Asynchronous повикване е задействано от повикване FM ключова дума: СТАРТИРАНЕ нова задача <ИмяЗадачи>. Модул се изпълнява в отделна DB LUW. aRFC може да се използва и в изпълнението на фона.

За aRFC резултатите трябва да са на повикване да сочи към резултатите от процедурата по обработка, то се дава с ключова дума: ИЗВЪРШВАНЕ <ИмяПроцедуры> ON КРАЙ НА задача. Процедура като първи параметър трябва да съдържа променливата, която ще бъде написан (това не е име на променлива стойности) име за изпълнение на задачата. За да изтеглите данни от aRFC, в тази процедура, задължителна команда се използва (ако не се намира в процедура, системата ще хвърли изключение - COMMUNICATION_FAILURE): получават достъп до резултатите от функцията <ИмяARFC>, гр параметри внасят, ТАБЛИЦИ изключения да бъдат прехвърлени от aRFC.

Процедурата не трябва да бъде по оператори тялото си, прекъсване на програмата, като например: CALL SCREEN, да представи, COMMIT РАБОТА, чакай, RFC разговори, видове съобщения W и I.

За да се изчака разговора там aRFC дума изчакайте, докато <Условие>. Ако условието за повикване aRFC е доволен, програмата веднага започва изпълнението му, след като изчака до. Ако не е доволен, програмата проверява състоянието отново. Този процес се повтаря, докато условието е изпълнено или не са изпълнени всички aRFC разговори.

Пример 2 aRFC задейства програма функция и очаква изпълнението на следните две условия:

aRFC призовава, както и може да доведе до sRFC вътре диалози, но използването им изглежда съмнително в този контекст по-подробно в хода (BC415).

Всички tRFC повиквания се съхраняват в таблиците: ARFCSSTATE и ARFCSDATA. Ако не искате да се обадите на tRFC веднага след COMMIT работи, можете да се обадите на FM START_OF_BACKGROUNDTASK (doCOMMITWORK) и да зададете часа и датата за началото на натрупаните tRFC призовава.

След извършване на COMMIT работа в случай на успешен местен актуализация (LUW като част от основната програма), натрупаните данни осигуряват фон задача, в случай на успешно завършване на тази задача, всички данни от таблиците tRFC са отстранени. Ако задачата не е завършена, повторете задейства механизъм, или намаление на цените.

Например, ако връзката не е установена със система за дистанционно, то се задейства автоматично повтаря задачата. Стандартният брой повторения е 30, времето за изчакване е 15 минути.

В случай, че втората от две tRFC неуспешно, съобщението с тип А или X или премахване на повикване чрез RAISE след успешно изпълнение на първия се случва следното:

  • Всички промени, направени през текущия LUW (и той сам на всички tRFC) са хвърлени обратно
  • Налице е рекорд в tRFC на регистъра на повикванията (TR. SM58)

За да накарате намаление на цените на всички промени или отмяна tRFC-LUW е FM - RESTART_OF_BACKGROUNDTASK.

Ако tRFC разговори се случват на различни системи (ДЕСТИНАЦИЯ "А", DESTIONATION "Б"), за всеки от тях създава tRFC-LUW, tRFC разговори са групирани в зависимост от целта.

За да се обадите на tRFC, отделно от останалите, можете да използвате ключовата дума: AS отделна единица.

Всеки tRFC-LUW има свой уникален идентификационен номер, за да го изтеглите, можете да използвате FM: ID_OF_BACKGROUNDTASK (наречен преди COMMIT работа). С помощта на тази ID, можете да идентифицирате състоянието на tRFC-LUW чрез FM - STATUS_OF_BACKGROUNDTASK.

  1. qRFC -RFC функции, осъществявани в последователност. При използване на tRFC не можем да контролираме стартиране ред tRFC модул, с други думи, по реда на тяхното повикване не може да се сравнява по реда, по който те работят. qRFC разлика tRFC, ни позволяват да контролирате реда, по който те работят.

За да поставите tRFC повикване в FIFO поръчка (първи дошъл, първи изходящ) е необходимо преди всяко tRFC призив да укажете името на опашката, това е направено с помощта на FM: TRFC_SET_QUEUE_NAME:

Името на опашката може да съдържа 24 символи, с изключение на * и%.

За да се приложи qRFC транзакция SM58, вместо да използват сделка - SMQ1. Маса в който данните се съхраняват qRFC - TRFCQOUT.

Повече информация за bgRFC е тук.

Сделки се използват при работа с RFC

функция BAPI

За обмен на данни между бизнеса SAP и не-SAP системи, тя е създадена т.нар Business Framework. Централната му част е хранилище на бизнес обект (БОР - Бизнес Хранилище Object). Всеки бизнес обект предоставя обектно-ориентиран подход за съхранение на бизнес данни и работа с бизнес процесите. Например, наричайки методи на бизнес обекти, ние по този начин манипулират бизнес данни, за които той е отговорен, без да се притеснявате за технически въпрос (линкове в таблиците, и т.н.)

Бизнес обект се състои от следните компоненти:

  • Технически данни - вътрешен номер, номера на освобождаване на SAP на системата, с която тя е на разположение, и т.н.
  • Списъкът на интерфейсите с подкрепата на обекта - интерфейс определя поведението структурата на обекта
  • Ключови области - качества, които я идентифицират даден обект. (Брой покупка)
  • Атрибути - може да е поле от базата данни и изчислява по време на работа с обекта (виртуална), препратки към други обекти (Business Object "Поръчка изцяло", например, може да включва връзки към сайтове извън доставки)
  • Методи - представляват повиквания R / 3 транзакция, или други функционални модули ABAP код. BAPI точно представляват прилагането на методи за бизнес обекти.
  • Събития - използват главно в работен процес. Например, да се направи списък на доставчиците да създадат поръчка за покупка.

BAPI - реализация на бизнес обекта е функционален модул RFC. BAPI може да се нарече синхронно (COMMIT РАБОТА ANDWAIT) и асинхронно т.е. в очакване на изпълнението на функцията или не.

BAPI може да бъде с различни действия на обекта:

  • създаване обект
  • Атрибути Обектът на заявката
  • Промяна на атрибутите на даден обект

BAPI може да се нарече от различни приложения: офис приложения (чрез VBA), JAVA и програмите на С ++ и други подобни

Всички BAPI след операцията си връща вътрешна маса с една от структурите: BAPIRETURN, BAPIRETURN1, BAPIRET1, BAPIRET2, BAPIRET1_FIX. В тази връзка, на BAPI не е изключение работа в стандарт FM. Всички тези структури съдържат следните области:

  • ТИП - вида на съобщението: S (uccess), Е (rror), W (потребности), I (съоветната)
  • ID (клас съобщение)
  • НОМЕР (брой на длъжностите в класа)
  • ПОСЛАНИЕ (текста на съобщението)
  • MESSAGE_V1, MESSAGE_V2, MESSAGE_V3, MESSAGE_V4 (променливи мнения)

Ако сделката е успешна, тогава няма да има RETURN маса записи с тип "Е" грешки. «S» трябва да присъства с вида на съобщение за грешка.

Курсът, който се занимава със създаването на собствена BAPI - BC417.

навигация в публикациите

Подкрепете проекта - споделете линка, благодаря!