Автор Тема: field-symbols- может кто-то пояснить  (Прочитано 45069 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
field-symbols- может кто-то пояснить
« : Декабрь 30, 2008, 02:11:57 pm »
field-symbols: <fs_aktiv> type any.
может кто-то пояснить начинаещему абаперу  :) простыми словами что есть сие, или ссылку даст на нормальное описание
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: field-symbols- может кто-то пояснить
« Ответ #1 : Декабрь 30, 2008, 08:25:52 pm »
You are not allowed to view links. Register or Login
field-symbols: <fs_aktiv> type any.
может кто-то пояснить начинаещему абаперу  :) простыми словами что есть сие, или ссылку даст на нормальное описание
Ну <fs_aktiv> может ссылаться в операторе ASSIGN на любую переменную, любого типа, любую структуру и т.д. В общем, типа на что надо на то по ходу и с делают ссылку.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: field-symbols- может кто-то пояснить
« Ответ #2 : Январь 10, 2009, 12:57:45 pm »
В общем чтобы снова не вспоминать, как достучаться до таблиц через field-symbols, небольшой примерчик. Из концепции, в замещениях FI, нужно было дотянуться до позиций документов ММ. В принципе как бы ясно что в контексте выполнения данные находятся в структурах MSEG и XMSEG, собственно сама таблица позиций это XMSEG, откуда знаю, ну скажем так опыт, так вот есть замещение, сделанное по принципу из этой темы: You are not allowed to view links. Register or Login (Замещение контрольного счета в MIRO). В этом замещении чтобы получить данные позиций документа ММ, к которому создается документ FI, нужно сделать следующее:
Код: You are not allowed to view links. Register or Login
  DATA: l_mseg LIKE mseg,
        lt_mseg LIKE mseg OCCURS 1 WITH HEADER LINE.
  FIELD-SYMBOLS: <fs_mseg> TYPE ANY TABLE.

  ASSIGN ('(SAPMM07M)xmseg[]') TO <fs_mseg>.
  lt_mseg[] = <fs_mseg>[].
  UNASSIGN <fs_mseg>.
Код можно у упростить, но я предпочитаю сразу же полученные данные копировать в свою локальную структуру, ссылку тут же освобождать и дальше уже без проблем работать с локальными данными. В общем после этого кода, в lt_mseg имеем позиции документа материала.
« Последнее редактирование: Январь 10, 2009, 12:59:35 pm от Uukrul »

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Re: field-symbols- может кто-то пояснить
« Ответ #3 : Январь 10, 2009, 04:48:56 pm »
Не мог бы ты подробнее обьяснить конструкцию
ASSIGN ('(SAPMM07M)xmseg[]')
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: field-symbols- может кто-то пояснить
« Ответ #4 : Январь 11, 2009, 01:17:48 pm »
You are not allowed to view links. Register or Login
Не мог бы ты подробнее обьяснить конструкцию
ASSIGN ('(SAPMM07M)xmseg[]')
Получает ссылку на внутреннюю таблицу объявленную в  программе SAPMM07M. Т.е. фактически обходится межмодульная защита данныъ кода. В принципе можно с полученной ссылкой сразу и работать, без копирования ее в lt_mseg[], но этим можно нарушить данные программы SAPMM07M и получить просто мифические сбои в работе, поэтому я все таки рекомендую после получения ссылки данные копировать во внутреннюю структуру и уже дальше работать со своей переменной.

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Re: field-symbols- может кто-то пояснить
« Ответ #5 : Январь 11, 2009, 01:20:19 pm »
вау, то есть это похоже на tPerson.SomeMetod() или tPerson.Address[] (масив, табличка),
круто, спасибо ....
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: field-symbols- может кто-то пояснить
« Ответ #6 : Январь 11, 2009, 01:32:38 pm »
You are not allowed to view links. Register or Login
вау, то есть это похоже на tPerson.SomeMetod() или tPerson.Address[] (масив, табличка),
круто, спасибо ....
Не знаю похоже ли это на то что ты написал  ::) но такой штукой пользоваться можно, но осторожно, так как мало ли что будет при апгрейдах на новые версии...

Оффлайн №1

  • Administrator
  • Jr. Member
  • *****
  • Сообщений: 636
  • Репутация: +23/-0
  • Пол: Мужской
  • Судьбы я вызов принимаю прямым пожатием руки
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: field-symbols- может кто-то пояснить
« Ответ #7 : Январь 11, 2009, 03:10:44 pm »
You are not allowed to view links. Register or Login
Не знаю похоже ли это на то что ты написал  ::) но такой штукой пользоваться можно, но осторожно, так как мало ли что будет при апгрейдах на новые версии...
Будет - проверено ;D
Мой You are not allowed to view links. Register or Login

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Re: field-symbols- может кто-то пояснить
« Ответ #8 : Январь 11, 2009, 04:32:42 pm »
отлично,будем пользоватся, век живи- век учись .....
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Moderator
  • Newbie
  • *****
  • Сообщений: 380
  • Репутация: +0/-0
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: field-symbols- может кто-то пояснить
« Ответ #9 : Январь 13, 2009, 03:37:00 pm »
2 Паганель: про использование еще можно посмотреть последний пост про оптимизацию. Чуть позже опишу как работать, когда <fs_aktiv> в твоем первом посте - рабочая область для работы со внутренними таблицами.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: field-symbols- может кто-то пояснить
« Ответ #10 : Январь 13, 2009, 09:33:24 pm »
You are not allowed to view links. Register or Login
Спасибо Дима, жду с нетерпением ....  :)
Так я вроде ж как про таблицы и показал?! Или ты имеешь в виду объявление вместо FIELD-SYMBOLS: <fs_mseg> TYPE ANY TABLE., делать такую штуку как:
Код: You are not allowed to view links. Register or Login
DATA: lt_mseg LIKE mseg OCCURS 1 WITH HEADER LINE.
FIELD-SYMBOLS: <fs_mseg> STRUCTURE mseg DEFAULT lt_mseg.

ASSIGN ('(SAPMM07M)xmseg[]') TO <fs_mseg>.

LOOP AT lt_mseg.
* Чего надо делаем...
ENDLOOP.

UNASSIGN <fs_mseg>.
Или я что не так понял?

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Moderator
  • Newbie
  • *****
  • Сообщений: 380
  • Репутация: +0/-0
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: field-symbols- может кто-то пояснить
« Ответ #11 : Январь 13, 2009, 09:39:12 pm »
You are not allowed to view links. Register or Login
Так я вроде ж как про таблицы и показал?! Или ты имеешь в виду объявление вместо FIELD-SYMBOLS: <fs_mseg> TYPE ANY TABLE., делать такую штуку как:
Код: You are not allowed to view links. Register or Login
DATA: lt_mseg LIKE mseg OCCURS 1 WITH HEADER LINE.
FIELD-SYMBOLS: <fs_mseg> STRUCTURE mseg DEFAULT lt_mseg.

ASSIGN ('(SAPMM07M)xmseg[]') TO <fs_mseg>.

LOOP AT lt_mseg.
* Чего надо делаем...
ENDLOOP.

UNASSIGN <fs_mseg>.
Или я что не так понял?
Все правильно ты показал. А я имел ввиду не про считывание из памяти, а про то, как работать с типом ANY, когда это Work area. Чуть позже, как отлажу на системе...

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: field-symbols- может кто-то пояснить
« Ответ #12 : Январь 13, 2009, 09:53:23 pm »
Угадал?  :D
Код: You are not allowed to view links. Register or Login
DATA wa2 TYPE c LENGTH 512.
FIELD-SYMBOLS <scarr2> TYPE scarr.

ASSIGN wa2 TO <scarr2> CASTING.
<scarr2>-carrid = '...'.
« Последнее редактирование: Январь 13, 2009, 09:59:10 pm от Dmitriy »

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Moderator
  • Newbie
  • *****
  • Сообщений: 380
  • Репутация: +0/-0
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: field-symbols- может кто-то пояснить
« Ответ #13 : Январь 13, 2009, 10:02:29 pm »
You are not allowed to view links. Register or Login
Угадал?  :D
Код: You are not allowed to view links. Register or Login
DATA wa2 TYPE c LENGTH 512.
FIELD-SYMBOLS <scarr2> TYPE scarr.

Почти :)
ASSIGN COMPONENT OF STRUCTURE ..., ну ты понял... ;)
Про динамику, когда с вн. таб. работаем, объявленной через FIELD-SYMBOL. На днях подниму, выложу, счас бы с этим гемором по замещениям оперативно разобраться. :D

P.S. Хех, вместо "Цитировать" кликнул поначалу "Изменить". Ничего не потер из твоего поста?

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Re: field-symbols- может кто-то пояснить
« Ответ #14 : Январь 13, 2009, 10:03:57 pm »
You are not allowed to view links. Register or Login
Все правильно ты показал. А я имел ввиду не про считывание из памяти, а про то, как работать с типом ANY, когда это Work area. Чуть позже, как отлажу на системе...

Ну как работать если нужна табличка, вроде бы понятно ... а вот если Work Area ... наверное есть какие-то секреты?  :)
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Re: field-symbols- может кто-то пояснить
« Ответ #15 : Январь 13, 2009, 10:10:50 pm »
хакеры хр... хорошие ...  :)
Вы лучше обьясните какая разница когда ANY используется для таблички и для воркареа ?
« Последнее редактирование: Январь 13, 2009, 10:14:58 pm от Паганель »
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Moderator
  • Newbie
  • *****
  • Сообщений: 380
  • Репутация: +0/-0
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: field-symbols- может кто-то пояснить
« Ответ #16 : Январь 13, 2009, 10:19:03 pm »
You are not allowed to view links. Register or Login
хакеры хр... хорошие ...  :)
Вы лучше обьясните какая разница когда ANY используется для таблички и для воркареа ?
Для таблички не ANY. Все, в ближайшее время материал соберу, напишу.

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Moderator
  • Newbie
  • *****
  • Сообщений: 380
  • Репутация: +0/-0
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: field-symbols- может кто-то пояснить
« Ответ #17 : Март 14, 2009, 06:06:45 pm »
Немного из засоленного. ;)
Код: You are not allowed to view links. Register or Login
DATA: lt_table TYPE REF TO data.
FIELD-SYMBOLS: <gt_lvc_fieldcatalog> TYPE lvc_t_fcat, " Каталог полей
                        <gt_lvc_outtab>       TYPE table, " Таблица
                        <ls_lvc_outtab>        TYPE ANY,  " Рабочая область
                        <lv_field_val>           TYPE ANY.  " Значение поля

* ..........Наш код........
* здесь же формируем <gt_lvc_fieldcatalog> для задания структуры динамически генерируемой вн. таблицы

* create dynamic table (according to fieldcatalog)
        CALL METHOD cl_alv_table_create=>create_dynamic_table
                    EXPORTING it_fieldcatalog = <gt_lvc_fieldcatalog>
                    IMPORTING ep_table = lt_table.

        ASSIGN lt_table->* TO <gt_lvc_outtab>.

        LOOP AT <gt_lvc_outtab> ASSIGNING <ls_lvc_outtab>.
        ............
* Если известно расположение поля (№44) относительно начала структуры 
           ASSIGN COMPONENT 44 OF STRUCTURE <ls_lvc_outtab> TO <lv_field_val>.
* Или, если известно имя поля (SUMM44):
           ASSIGN COMPONENT 'SUMM44' OF STRUCTURE <ls_lvc_outtab> TO <lv_field_val>.
        ............
        ENDLOOP.
« Последнее редактирование: Март 14, 2009, 06:13:44 pm от Dmitriy »

Dimas

  • Гость
Re: field-symbols- может кто-то пояснить
« Ответ #18 : Апрель 16, 2010, 10:13:13 am »
Не претендую на оригинальность (сам недавно за ABAP взялся) но вот такой вариант имеет место быть
Код: You are not allowed to view links. Register or Login
field-SYMBOLS <fs> type any table.
data l_t_spfli type TABLE OF spfli.
data l_s_spfli type spfli.

assign l_t_spfli to <fs>.

select single * into l_s_spfli from spfli.
insert l_s_spfli into table <fs>.

loop at <fs> INTO l_s_spfli.
  write l_s_spfli-carrid.
endloop.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: field-symbols- может кто-то пояснить
« Ответ #19 : Апрель 16, 2010, 10:17:47 pm »
You are not allowed to view links. Register or Login
Не претендую на оригинальность (сам недавно за ABAP взялся) но вот такой вариант имеет место быть
Ну если начали то вот ветка оптимизации ABAP и там этот вопрос раскрыт более подробно зачем так делаеть лучше, ну и вообще веточка получилась полезной:
You are not allowed to view links. Register or Login

Sapforum.Biz

Re: field-symbols- может кто-то пояснить
« Ответ #19 : Апрель 16, 2010, 10:17:47 pm »