+ Sapforum.Biz » Инструменты » ABAP - Инструментальные средстваТема:
|- Подстановка последнего номера документа материала в своей транзакции




Автор Тема: Подстановка последнего номера документа материала в своей транзакции  (Прочитано 9448 раз)

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

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

  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Reputation Power: 1
  • Паганель has no influence.
  • Пол: Мужской
  • http://www.noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Для некоторых все это очевидно, но вот нам тут понадобилось, вот коллега немного покопался.

Если в чем то ошибся, думаю что коллеги по форуму подправят.  ;)

1. Установливаем значение параметра MBN
Код: You are not allowed to view links. Register or Login
SET PARAMETER ID 'MBN' FIELD mkpf-mblnr. "последний созданный документ товара2. В определении экрана выбора указываем MEMORY ID откуда будет считыватся нужный нам номер.
Код: You are not allowed to view links. Register or Login
SELECT-OPTIONS sv_mblnr FOR mkpf-mblnr MEMORY ID MBN. 
Вроде ничего не забыл?
---
FYI (особенно это касается рекрутеров)
Я НЕ ЗАНИМАЮСЬ САП, уже более 4х лет!
По вопросам SAP - НЕ БЕСПОКОИТЬ
---
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 674
  • Reputation Power: 2
  • Uukrul barely matters.Uukrul barely matters.
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Ну как вам сказать, ну для более полного ответа не мешало бы во-первых, уточнить что такой код будет работать не всегда правильно, так как нумерация документов материала привязана к году, а это значит что кроме номера документа еще нужно указать и год документа. Для этого надо:

1. Установливаем значение параметра MJA
Код: You are not allowed to view links. Register or Login
SET PARAMETER ID 'MJA' FIELD mkpf-mjahr. "Год документа2. В определении экрана выбора указываем MEMORY ID откуда будет считыватся нужный нам год.
Код: You are not allowed to view links. Register or Login
SELECT-OPTIONS sv_mjahr FOR mkpf-mjahr MEMORY ID MJA.
Теперь о том откуда можно узнать о параметрах, для этого идем в интересующую нас транзакцию, например просмотра документа материала MB03, на первом экране, рисунок MB03.png видим что для идентификации документа нужно знать номер и год документа. Теперь как узнать код параметра для поля, например поле года. Для этого становимся в поле года и нажимаем кнопку F1, попадаем в справку описания к полю, рисунок MB03-F1.png, затем на этом экране нажимаем кнопку перехода к технической информации и попадаем в экран, рисунок MB03-MJA.png. Вот на этом экране и указан код параметра который можно использовать в своих программах. Как видим для поле год материала это MJA.

Аналогичным способом можно узнать параметры для любых полей, но помните, что не каждое поле экрана к сожалению имеет код параметра.

Вот теперь вроде как все  ;)

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

  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Reputation Power: 1
  • Паганель has no influence.
  • Пол: Мужской
  • http://www.noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Ну вот, я же говорил что более опытные коллеги с форума, дополнят, спасибо - познавательно
---
FYI (особенно это касается рекрутеров)
Я НЕ ЗАНИМАЮСЬ САП, уже более 4х лет!
По вопросам SAP - НЕ БЕСПОКОИТЬ
---
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

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

  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Reputation Power: 1
  • Паганель has no influence.
  • Пол: Мужской
  • http://www.noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Сюда же, что бы не плодить веток....
А как его так сказать экспортнуть? Т.е. в своей проге через бапишку создал документ материала, получил этот номер, теперь хотелось бы его экспортнуть и сделать доступным другим транзакциям?
---
FYI (особенно это касается рекрутеров)
Я НЕ ЗАНИМАЮСЬ САП, уже более 4х лет!
По вопросам SAP - НЕ БЕСПОКОИТЬ
---
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
  • Кухня
  • Newbie
  • *
  • Сообщений: 380
  • Reputation Power: 0
  • Dmitriy has no influence.
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYears
You are not allowed to view links. Register or Login
А как его так сказать экспортнуть? Т.е. в своей проге через бапишку создал документ материала, получил этот номер, теперь хотелось бы его экспортнуть и сделать доступным другим транзакциям?
см. п.1 поста Uukrul...
Установка значений ID-параметров:
SET PARAMETER ID 'MJA' FIELD mkpf-mjahr. "Год документа
SET PARAMETER ID 'MBN' FIELD mkpf-mblnr. "№ документа
Получение значений ID-параметров (в своей программе, уже после создания документа и экспорта в память):
GET PARAMETER ID 'MJA' FIELD gv_mjahr. "Год документа
GET PARAMETER ID 'MBN' FIELD gv_mblnr. "№ документа
Значения ID-параметров сохраняются в рамках одной сессии (вне зависимости от кол-ва режимов) и привязаны к конкретному пользователю. Существует также конструкция: EXPORT/IMPORT lt_mkpf TO/FROM MEMORY ID 'ZMKPF', где lt_mkpf - твоя внутренняя таблица. ID-параметры создаются в SE80: "Shift+F5" - "Другой объект", вкладка "Другие" см. рисунок, указатель мыши на кнопочке "Другой объект", а привязываются к ЭД в SE11, вкладка "Дополнительные свойства".
« Последнее редактирование: Ноябрь 11, 2009, 02:09:44 pm от Dmitriy »

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

  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Reputation Power: 1
  • Паганель has no influence.
  • Пол: Мужской
  • http://www.noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
хм, спасибо ... невнимательно читал ответ Уукрула
---
FYI (особенно это касается рекрутеров)
Я НЕ ЗАНИМАЮСЬ САП, уже более 4х лет!
По вопросам SAP - НЕ БЕСПОКОИТЬ
---
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
  • Кухня
  • Newbie
  • *
  • Сообщений: 380
  • Reputation Power: 0
  • Dmitriy has no influence.
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYears
You are not allowed to view links. Register or Login
хм, спасибо ... невнимательно читал ответ Уукрула
нема за что...
Нужно еще учесть, что параметр обновляется после ввода его на экран, т.е. ты создал документ, занес его № в память, зашел в др. транзакцию, ввел там совсем другой номер, он сохранился, т.е. тот который тебе нужен - затерся. ;)

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

  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Reputation Power: 1
  • Паганель has no influence.
  • Пол: Мужской
  • http://www.noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
да нет, все нормально, я понял .... просто тут такая задача, типа куча транзакций, часть самопыисных, а печатаем с другой где куча смартформ забита.... пользователю неудобно как бы провел документ, потом заходит в транзакцию печати, и ищет только что созданный документ.....

Думаю проблем не будет...
---
FYI (особенно это касается рекрутеров)
Я НЕ ЗАНИМАЮСЬ САП, уже более 4х лет!
По вопросам SAP - НЕ БЕСПОКОИТЬ
---
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

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

  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Reputation Power: 1
  • Паганель has no influence.
  • Пол: Мужской
  • http://www.noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Резюме: Подстановка последнего номера доl
« Ответ #8 : Ноябрь 11, 2009, 01:47:03 pm »
Краткое резюме для себя (тут снова понадобилось, вот читал пост и сидел, вспоминал где же эти куски кода прописывать)

Экспорт последнего номера документа материала в своей транзакции
Код: You are not allowed to view links. Register or Login
SET PARAMETER ID 'MJA' FIELD mkpf-mjahr. "Год документа
SET PARAMETER ID 'MBN' FIELD mkpf-mblnr. "№ документа

Импорт последнего номера документа материала в своей транзакции

Перед объявлением select-options вставляем код:
Код: You are not allowed to view links. Register or Login
GET PARAMETER ID 'MBN' FIELD mkpf-mblnr. "последний созданный документ товара
GET PARAMETER ID 'MJA' FIELD mkpf-mjahr. "Год документа

Пример:

Код: You are not allowed to view links. Register or Login
SET PARAMETER ID 'MBN' FIELD mkpf-mblnr. "последний созданный документ товара
SET PARAMETER ID 'MJA' FIELD mkpf-mjahr. "Год документа

SELECTION-SCREEN BEGIN OF BLOCK choice WITH FRAME TITLE text-001.
  SELECT-OPTIONS:  p_belnr   FOR mkpf-mblnr MEMORY ID MBN.
  PARAMETERS:      p_gjahr   TYPE mkpf-mjahr MEMORY ID MJA. "DEFAULT '2009'.
  PARAMETERS:      p_budat   TYPE mkpf-budat. "OBLIGATORY.
 SELECTION-SCREEN END OF BLOCK choice.
« Последнее редактирование: Ноябрь 11, 2009, 02:01:01 pm от Паганель »
---
FYI (особенно это касается рекрутеров)
Я НЕ ЗАНИМАЮСЬ САП, уже более 4х лет!
По вопросам SAP - НЕ БЕСПОКОИТЬ
---
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 674
  • Reputation Power: 2
  • Uukrul barely matters.Uukrul barely matters.
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Не это явно какую-то фигню написал, так как если ты в своей первой программе сделал SET, то вот это вот ниже.. явная пурга, так как получается что ты в другой программе перетираешь переменные памяти какими-то значениями из mkpf-mblnr и mkpf-mjahr., после чего у тебя в SELECT-OPTIONS будет пустота.

Код: You are not allowed to view links. Register or Login
SET PARAMETER ID 'MBN' FIELD mkpf-mblnr. "последний созданный документ товара
SET PARAMETER ID 'MJA' FIELD mkpf-mjahr. "Год документа

SELECTION-SCREEN BEGIN OF BLOCK choice WITH FRAME TITLE text-001.
  SELECT-OPTIONS:  p_belnr   FOR mkpf-mblnr MEMORY ID MBN.
  PARAMETERS:      p_gjahr   TYPE mkpf-mjahr MEMORY ID MJA. "DEFAULT '2009'.
  PARAMETERS:      p_budat   TYPE mkpf-budat. "OBLIGATORY.
 SELECTION-SCREEN END OF BLOCK choice.

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Кухня
  • Newbie
  • *
  • Сообщений: 380
  • Reputation Power: 0
  • Dmitriy has no influence.
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Перед объявлением select-options ничего вставлять не нужно.
SELECT-OPTIONS:  p_belnr   FOR mkpf-mblnr MEMORY ID MBN.
PARAMETERS:        p_gjahr   TYPE mkpf-mjahr MEMORY ID MJA.
То, что выделено жирным и дает нам нужный эффект:
1. Подстановка из памяти перед выводом
2. Занесение в память после ввода на СЭ.
Поэтому и написал чуть выше, чтобы внимательно последовательность при цепочке операций соблюдал. Попробуй, открой 2 режима и в обоих поиграй с MB03, например.

Update 4 Uukrul: ну дык это ж Паганель, что бы мы вообще тут без него делали! :D  
« Последнее редактирование: Ноябрь 11, 2009, 02:05:35 pm от Dmitriy »

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

  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Reputation Power: 1
  • Паганель has no influence.
  • Пол: Мужской
  • http://www.noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Спасибо, ошибся в посте, мало того, я эту пургу и в код проги прописал.

Спасибо, подправил .....
---
FYI (особенно это касается рекрутеров)
Я НЕ ЗАНИМАЮСЬ САП, уже более 4х лет!
По вопросам SAP - НЕ БЕСПОКОИТЬ
---
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
  • Кухня
  • Newbie
  • *
  • Сообщений: 380
  • Reputation Power: 0
  • Dmitriy has no influence.
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Кстати, рекомендую на СЭ использовать следующие обозначения:
p_* - параметр, so_* - select-options, сам использую просто s_ для последних.

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

  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Reputation Power: 1
  • Паганель has no influence.
  • Пол: Мужской
  • http://www.noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
You are not allowed to view links. Register or Login
Кстати, рекомендую на СЭ использовать следующие обозначения:
p_* - параметр, so_* - select-options, сам использую просто s_ для последних.


ну всегда так и делаю, просто данную прогу делал другой человек, я лишь подправлял, и переименовывать  не стал (зачем лишняя работа).

Т.е.  все просто и достаточно этого:
Экспорт последнего номера документа материала в своей транзакции
Код: You are not allowed to view links. Register or Login
SET PARAMETER ID 'MJA' FIELD mkpf-mjahr. "Год документа
SET PARAMETER ID 'MBN' FIELD mkpf-mblnr. "№ документа

Импорт последнего номера документа материала в своей транзакции
Пример:
Код: You are not allowed to view links. Register or Login
SELECTION-SCREEN BEGIN OF BLOCK choice WITH FRAME TITLE text-001.
  SELECT-OPTIONS:  p_belnr   FOR mkpf-mblnr MEMORY ID MBN.
  PARAMETERS:      p_gjahr   TYPE mkpf-mjahr MEMORY ID MJA. "DEFAULT '2009'.
  PARAMETERS:      p_budat   TYPE mkpf-budat. "OBLIGATORY.
SELECTION-SCREEN END OF BLOCK choice.
---
FYI (особенно это касается рекрутеров)
Я НЕ ЗАНИМАЮСЬ САП, уже более 4х лет!
По вопросам SAP - НЕ БЕСПОКОИТЬ
---
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
  • Кухня
  • Newbie
  • *
  • Сообщений: 380
  • Reputation Power: 0
  • Dmitriy has no influence.
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYears