Дебиторы:
- пакет - CMD_INTERFACE (Customer Interface),
- основной класс - CMD_EI_API (Customer Processing APIs).
Кредиторы:
- пакет - VMD_INTERFACE (Vendor Interface),
- основной класс - VMD_EI_API (Vendor Processing APIs).
Сюда я буду сохранять всякие куски кода, конфигов, ссылки, чтобы в один прекрасный день когда мне это снова понадобится - не вспоминать судорожно где и когда я это применял.
types:Подробнее...
begin of vrm_value,
key(40) type c,
text(80) type c,
end of vrm_value,
VRM_VALUES TYPE VRM_VALUE OCCURS 0.
data: lifnr_values TYPE VRM_VALUES with header line.
FREE lifnr_values. " обязательно
data: lfa1_tb TYPE WSTN_LFA1_TAB, lfa1_ln TYPE LFA1.
" заполнить где-то lfa1_tb поставщиками
LOOP AT lfa1_tb into lfa1_ln.
lifnr_values-key = lfa1_ln-lifnr.
CONCATENATE lfa1_ln-NAME1 lfa1_ln-NAME2 lfa1_ln-NAME3 lfa1_ln-NAME4
into lifnr_values-text.
APPEND lifnr_values.
ENDLOOP.
call function 'VRM_SET_VALUES'
EXPORTING
id = 'LIFNR' " имя элемента
values = lifnr_values[]
EXCEPTIONS
others = 1.
dim session
StartApp
if WScript.Arguments.Count > 0 Then
if WScript.Arguments(0) = "Site" Then
SiteUpload
End if
End if
rem Выходим
session.findById("wnd[0]/tbar[0]/okcd").text = "/nex"
session.findById("wnd[0]").sendVKey 0
Sub SiteUpload
rem Запускаем программу
session.findById("wnd[0]/tbar[0]/okcd").text = "se38"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/ctxtRS38M-PROGRAMM").text = "ZRSITE_UPLOAD"
session.findById("wnd[0]").sendVKey 8
session.findById("wnd[0]/usr/txtTUNE").text = "tyumen"
session.findById("wnd[0]/usr/txtMIN_C").text = "15"
session.findById("wnd[0]/usr/txtTEMP_DIR").text = "C:\"
session.findById("wnd[0]/usr/txtPR_VARI").text = "TYUMEN"
session.findById("wnd[0]").sendVKey 8
end sub
rem Подпрограма запуска приложения
Sub StartApp
rem запускаем саплогон
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "C:\Progra~1\SAP\FrontEnd\SAPgui\saplogon.exe", 1, False
rem ждём открытия
WScript.Sleep(10000)
rem Открываеем сессию
If Not IsObject(application) Then
Set SapGuiAuto = GetObject("SAPGUI")
Set application = SapGuiAuto.GetScriptingEngine
rem application.OpenConnection("RD1")
application.OpenConnectionByConnectionString("rosasap09 00")
Set connection = application.Children(application.Children.Count - 1) rem свежеоткртое окно
Set session = connection.Children(0)
End If
If IsObject(WScript) Then
WScript.ConnectObject session, "on"
WScript.ConnectObject application, "on"
End If
rem Авторизация
session.findById("wnd[0]").maximize
session.findById("wnd[0]/usr/txtRSYST-MANDT").text = "800"
session.findById("wnd[0]/usr/txtRSYST-BNAME").text = "alexeys"
session.findById("wnd[0]/usr/pwdRSYST-BCODE").text = ""
session.findById("wnd[0]/usr/txtRSYST-LANGU").text = "ru"
session.findById("wnd[0]").sendVKey 0
rem Если открылось окно, что чувак уже залогинен - закрыть? а может не закрывать? Тогда вместо OPT1 - OPT2
set log_opt = session.findById("wnd[1]/usr/radMULTI_LOGON_OPT1", False)
If not log_opt Is Nothing Then
log_opt.select
session.findById("wnd[1]/tbar[0]/btn[0]").press
End If
End Sub
CALL FUNCTION 'SAPGUI_SET_FUNCTIONCODE'EXPORTINGFUNCTIONCODE = '='EXCEPTIONSFUNCTION_NOT_SUPPORTED = 1OTHERS = 2.
DATA: dynpfields_tb TYPE TABLE OF dynpread,
dynpfields_ln TYPE dynpread.
DEFINE AddField.
dynpfields_ln-fieldname = '&1'.
dynpfields_ln-fieldvalue = &1.
APPEND dynpfields_ln to dynpfields_tb.
END-OF-DEFINITION.
AddField MAT_INFO_STR-MATNR.
AddField MAT_INFO_STR-MATERIAL_NAME.
CALL FUNCTION 'DYNP_UPDATE_FIELDS'
EXPORTING
DYNAME = sy-repid
DYNUMB = '1210'
TABLES
DYNPFIELDS = dynpfields_tb
EXCEPTIONS
INVALID_ABAPWORKAREA = 1
INVALID_DYNPROFIELD = 2
INVALID_DYNPRONAME = 3
INVALID_DYNPRONUMMER = 4
INVALID_REQUEST = 5
NO_FIELDDESCRIPTION = 6
UNDEFIND_ERROR = 7
OTHERS = 8.