Sap как найти include

Включаемые программы – это объекты глобального репозитория, используемые для модуляции исходного кода. Они позволяют использовать один и тот же исходный код в разных программах. Включающие программы также позволяют упорядоченно управлять сложными программами. Чтобы использовать программу включения в другой программе, мы используем следующий синтаксис:

INCLUDE <program_name>.

Оператор INCLUDE имеет тот же эффект, что и копирование исходного кода включаемой программы <имя_программы> в другую программу. Поскольку включаемая программа не может работать независимо, она должна быть встроена в другие программы. Вы также можете вкладывать включенные программы.

Ниже приведено несколько ограничений при написании кода для программ «Включить».

  • Включаемые программы не могут называть себя.
  • Включаемые программы должны содержать полные заявления.

Ниже приведены инструкции по созданию и использованию программы «Включить».

Шаг 1 – Создайте программу (Z_TOBEINCLUDED) для включения в ABAP Editor. Код для включения в ABAP Editor –

PROGRAM Z_TOBEINCLUDED.  
Write: / 'This program is started by:', SY-UNAME,
       / 'The Date is:', SY-DATUM,
       / 'Time is', SY-UZEIT.

Шаг 2 – Установите для типа программы значение ВКЛЮЧИТЬ программу, как показано на следующем снимке экрана.

Включить программы

Шаг 3 – Нажмите кнопку «Сохранить» и сохраните программу в пакете с именем ZINCL_PCKG.

Шаг 4 – Создайте другую программу, в которой должна использоваться программа Z_TOBEINCLUDED. Здесь мы создали другую программу с именем Z_INCLUDINGTEST и назначили тип для программы как Исполняемая программа.

Шаг 5 – Кодирование программы Z_INCLUDINGTEST включает программу Z_TOBEINCLUDED с помощью оператора INCLUDE, как показано в следующем коде.

REPORT Z_INCLUDINGTEST.  
INCLUDE Z_TOBEINCLUDED. 

Шаг 6 – Сохраните, активируйте и запустите программу.

Приведенный выше код производит следующий вывод –

Автор Сообщение

Заголовок сообщения: Как в метод включить INCLUDE файл?

СообщениеДобавлено: Вт, июн 10 2008, 16:25 

Младший специалист
Младший специалист



Зарегистрирован:
Пн, авг 27 2007, 10:57
Сообщения: 72

Подскажите пожалуйста.

Есть класс а внём есть переопределённый метод.

Нужно в определении метода задействовать PERFORM лежащие в отдельном INCLUDE.

Как это сделать?

Т.е. есть

METHOD PRINT.

ENDMETHOD.

запись вида

METHOD PRINT.

INCLUDE nnn .

ENDMETHOD.

приводит к ошибке.

Принять этот ответ

Вернуться к началу

Профиль  

sy-uname

Заголовок сообщения: Re: Как в метод включить INCLUDE файл?

СообщениеДобавлено: Вт, июн 10 2008, 16:36 

Гуру-эксперт
Гуру-эксперт



Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988

Voldemar написал(а):

Подскажите пожалуйста.
Есть класс а внём есть переопределённый метод.
Нужно в определении метода задействовать PERFORM лежащие в отдельном INCLUDE.
Как это сделать?

Т.е. есть
METHOD PRINT.

ENDMETHOD.

запись вида
METHOD PRINT.
INCLUDE nnn .

ENDMETHOD.

приводит к ошибке.

У вас класс определён в словаре?

Тогда какие могут быть ещё form? можно вызвать через perform zzz in program yyy, но насколько помню, в классе нет никаких подпрограмм.


_________________
«После» — не значит «вследствие»

Принять этот ответ

Вернуться к началу

Профиль  

trop

Заголовок сообщения: ку

СообщениеДобавлено: Вт, июн 10 2008, 16:41 



Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963

в определении класса в локальных типах (Типы) можно вставить include z*.

если form-ы не подцепит то просто в локаьлные классы обернуть в том же include.

Принять этот ответ

Вернуться к началу

Профиль Отправить email  

Sergo

Заголовок сообщения: Re: Как в метод включить INCLUDE файл?

СообщениеДобавлено: Ср, июн 11 2008, 07:18 

Менеджер
Менеджер



Зарегистрирован:
Чт, янв 20 2005, 08:34
Сообщения: 573
Пол: Мужской

Voldemar написал(а):

Подскажите пожалуйста.
Есть класс а внём есть переопределённый метод.
Нужно в определении метода задействовать PERFORM лежащие в отдельном INCLUDE.
Как это сделать?

Т.е. есть
METHOD PRINT.

ENDMETHOD.

запись вида
METHOD PRINT.
INCLUDE nnn .

ENDMETHOD.

приводит к ошибке.

Нужно так:

Code:

CLASS … IMPLEMENTATION.

  METHOD PRINT.

    PERFORM … » Вызов формы из INCLUDE nnn

  ENDMETHOD.

ENDCLASS.

INCLUDE nnn.


_________________
Волю в кулак, мышцы в узду, работай себе и не ахай!

Принять этот ответ

Вернуться к началу

Профиль  

If same set of statements (source code) used in more than one program, those statements can add to the include program. Include programs is available to all the programs and used in any program.

Include programs are only used to modularize the source code but have no parameter interface. Include programs are not standalone programs and cannot be executed independently.

Include programs available globally and can use in any ABAP program. Include program contains small piece of source code that can be included in a program with an INCLUDE statement.

INCLUDE statement is responsible for copying the include program source code to the main program during the runtime. Include programs can’t call themselves. Include program must be syntax error free and contain complete statements.

Syntax —

INCLUDE <include-program>

  • Include-program — Specifies the include program name. INCLUDE programs can be created in the ABAP Editor.

Example —

Below example explains how to create an include program and how it is included in the program.

Step-1: Go to SE38 transaction. Enter the include name (Z_INCLSUB) and click on create.
Include Program Example

Step-2: Re-enter the program name(Z_INCLSUB), select the Type of the program as INCLUDE program and click on Save.
Include Program Example

Step-3: Enter the package details and click on Local object to open ABAP editor.

Step-4: Add the code to the Z_INCLSUB in ABAP editor. In this case, we added the below code to the include Z_INCLSUB.

WRITE / 'Inside the include..'. 

Step-5: Save, Activate the include and close the ABAP Editor.

Step-6: Open a new program to add Z_INCLSUB to the program. In this case we are creating Z_INCLMAIN program as a main program.
Add the include Z_INCLSUB to the program Z_INCLMAIN like below –

REPORT  Z_INCLMAIN.

Write 'Main program execution starts...'.

INCLUDE Z_INCLSUB.

Write / 'Main program execution ends..'. 

Step-7: Save, Activate and Execute the main program Z_INCLMAIN.

Output —

Include Program Example Output

Explaining Example —

In the above example, each and every statement is preceeded with a comment to explain about the statement. Go through them to get clear understanding of example code.

The code from Z_INCLSUB includes in Z_INCLMAIN during the run time and produces the above result.

Несмотря на то, что система многофункциональна и избыточна, все же достаточно часто требуется вносить изменения в ее логику работы. Начинающие консультанты часто спрашивают, как же можно расширить логику работы системы для требований бизнеса? Не все можно сделать галочками, это верно. Иногда мы влезаем в исходные коды вендора, чтобы сделать свое расширение SAP, свою логику работы. Для нас, с точки зрения HR, представляют интерес два вида расширений системы.

User-exit

Самая старая технология, но и наиболее простая и универсальная. Суть заключается в том, что SAP в своих программах делает вызов специальных Includes (программ), которые начинаются с букв ZX и поэтому разрешены для изменения консультантам. То есть, мы находим такой вызов, создаем Include (программу) и в ней пишем любую логику. При компиляции система видит, что появился в базе данных такой объект — Include, вставляет его содержимое на то место, где был вызов. Так получается, с точки зрения системы, что этот кусок кода как будто бы уже был в самой программе. Например, форма Т-2, программа HRULT2_2004, инклуд HRUIT2_PRC_2004. Смотрим событие get pernr:

form get_pernr .
data: ls_log_pernr like line of gt_log_pernr.

* user-exit
include zx_hrult2_pernr.
pn-endda = p_datep.
if gf_fill_period_to = ‘X’.
pnpendda = p_datep.
endif.

Что мы видим? В программе есть user-exit с названием zx_hrult2_pernr. Можно два раза на него кликнуть и тем самым создать программу. Теперь мы в этом Include можем писать свой код, который будет подставлен вместо строчки include zx_hrult2_pernr.

Другой пример из того же отчета:

form end_of_selection .
* user-exit
include zx_hrult2_eos.

Насколько мне известно, нет какого-либо единого наглядного каталога, где можно было бы посмотреть все user-exits. Каждую программу нужно смотреть индивидуально. Часть user-exit можно посмотреть, создать и документировать через транзакцию CMOD — управление проектами расширений. Запускаем транзакцию CMOD, в меню «Утилиты» выбираем «SAP-расширения». И по ключевым словам ищем доступные расширения. Искать проще по маске по словам PY, PT, PA, HR, OM для поля «Прикладной компонент». К этому полю, почему-то, нет средства поиска.

BADi

Это уже новая технология. Расшифровывается как Business Add-Ins (бизнес-дополнения). BAdi состоит из двух сущностей: определение и реализация. Определение — это своего рода описание объекта с указанием, что он может хранить (какие есть атрибуты), что делать (какие есть методы). Это определенная модель, которая описывает, что обязательно должно быть на входе и на выходе, какие параметры могут быть, их типы и правила вызова. Своего рода абстракция: все мы понимаем, что велосипед состоит из колес, педалей, рамы, руля, цепи, которая соединяет педали с колесом через муфту. Но реализация может быть разной. Так и здесь. Концептуальный проект велосипеда — это определение BAdi, а его конкретная реализация в горный, шоссейный или дамский велосипед — это реализация BAdi. Чтобы определить модель велосипеда (какую именно реализацию нужно вызвать в программе) есть понятие фильтра. Фильтр — это элемент данных в определении BAdi. При вызове программа заполняет его каким-то значением (как решит программист). Система смотрит все реализации этого определения BAdi, у которых стоит такое же значение фильтра (или фильтр просто не используется как критерий), и вызывает подходящую реализацию. По этому принципу, например, сделана косвенная оценка видов оплаты. Посмотрите определение HR_INDVAL (тр. SE18) и реализации HR_IV_* (тр. SE19).

Пример вызова данного BAdi с косвенной оценкой можно посмотреть в процедуре indbw в функциональном модуле RP_EVALUATE_INDIRECTLY. В данном случае вызов не совсем очевиден, но понять принцип работы можно.

Транзакции для создания BAdi: SE18 — создание определений, SE19 — создание реализаций.

Enhancement Framework

С версии 7.0 ядра системы компания SAP предлагает новое решение для внесения пользовательских расширений (логики) в систему. Решение называется Enhancement Framework (EF) и призвано унифицировать технологию внедрения пользовательской бизнес-логики в места, которые определены SAP. На самом деле, этот функционал охватывает еще и модификацию объектов системы, но мы работаем в рамках стандарта и не будем ломать систему. В настоящий момент эта технология встречается только в расширенном функционале HR (административные сервисы, ESS/MSS и т.д.). Рекомендую сейчас не забивать этим голову, так как это больше требуется программистам. Любопытных могу отправить на http://help.sap.com и в транзакцию SPAU_ENH.

Include programs are not standalone programs and cannot be executed independently. They can be used as a container for ABAP source code. They are used to organize the ABAP source code into small editable units which can be inserted at any place in other ABAP programs using the INCLUDE statement. Include programs can be used in different programs. The include statement copies the contents of the include program into the main program.

Include programs have no parameter interface and they cannot call themselves.

While creating the INCLUDE program using the ABAP editor choose program type as «I» i.e. INCLUDE program in the program attributes.

abap-include-1

Syntax for Include program is as follows.

INCLUDE <Include Program Name>

Source code of ZINCLUDE_DATA.

DATA: g_name(10) TYPE c.

Source code of ZINCLUDE_WRITE.

WRITE:/ 'Inside include program'.

Source code of main program.

REPORT  zmain_program.

INCLUDE zinclude_data.

WRITE:/ 'Main Program'.

INCLUDE zinclude_write.

Output

abap-include-2


Понравилась статья? Поделить с друзьями:
  • Как чебурашка нашел своих друзей
  • Как найти сантехника в новосибирске
  • Как найти мостик холода в квартире
  • Как найти минимальный элемент массива блок схема
  • Ошибка термофиксатора как исправить