Os/400 Api, нужна помощь...

susinmn

Well-known member
16.10.2007
529
3
#1

TIA

:-)
Lotus team
15.05.2009
790
3
#2
Подскажите что нужно прописывать здесь для OS/400?
Как правило, всё тоже, что и для Win32.


Что-то вроде:

Код:
Public Type TIMEDATE
Innards(1) As Long
End Type

const NOTE_MODIFIED& = 4

Declare Public Sub OS400_NSFNoteGetInfo_Modified Lib "inotes" Alias "NSFNoteGetInfo" ( Byval hNote As Long, Byval note_member As Integer, ModifiedInThisFile As TIMEDATE)
Пригодится:
Код:
Declare Sub OS400_ConvertTIMEDATEToText Lib "inotes" Alias "ConvertTIMEDATEToText" (Byval IntlFormat As Long,Byval TextFormat As Long, actTIMEDATE As TIMEDATE, Byval retTextBuffer As String,Byval TextBufferLength As Integer,retTextLength As Integer)

Const MAXALPHATIMEDATE = 80

Function ConvertTIMEtoText(dt As TIMEDATE) As String

Dim spTime As String * MAXALPHATIMEDATE
Dim retLength As Integer

spTime = Space(MAXALPHATIMEDATE)
Call W32_ConvertTIMEDATEToText (&h0,&h0, dt, spTime,MAXALPHATIMEDATE,retLength)
ConvertTIMEtoText = Left$(spTime,retLength)
End Function
Звать так:

Код:
dim dt as TIMEDATE
Call OS400_NSFNoteGetInfo_Modified(doc.Handle, NOTE_MODIFIED, dt)
msgbox ConvertTIMEtoText(dt)
 

susinmn

Well-known member
16.10.2007
529
3
#3
Private Type timeDateTYPE
innards(1) As Long
End Type

Declare Public Sub OS400_NSFNoteGetInfo_Added Lib "inotes" Alias "NSFNoteGetInfo" ( Byval hNote As Long, Byval note_member As Integer, AddedInThisFile As timeDateTYPE)

hNote& = doc.HANDLE
Dim tdStruct As timeDateTYPE

Сваливается вот на этом: Call OS400_NSFNoteGetInfo_Added(hNote&, 13, tdStruct)

error message: Error in loading DLL
 

TIA

:-)
Lotus team
15.05.2009
790
3
#4
Обращение к внешним функциям dll является unrestricted операцией. Соответственно, агенту и его подписанту надо дать права. Делается это в св-вах агента и в документе на сервер.
 

susinmn

Well-known member
16.10.2007
529
3
#5
На сервере, где W32 работает, а вот на OS400 ни как(

*Делается это в св-вах агента и в документе на сервер.* В агенте права были, а что за *в документе на сервер*?
 

Вложения

TIA

:-)
Lotus team
15.05.2009
790
3
#7
В агенте права были, а что за *в документе на сервер
В серверной адресной книге для каждого сервера домена есть документ. В нём на закладке Security есть раздел в котором указывается кто может запускать анрестриктед агенты, а кто рестриктед. Подписант агента должен быть во втором поле.
 

susinmn

Well-known member
16.10.2007
529
3
#8
нашел название библиотеки "/qsys.lib/qnotes.lib/libnotes.svrpgm". спасибо lmike*у.
но не работает, более того за вечер уже 4 раз повесил сервер этим агентом(
пробовал запускать на 2 серверах, агент даже не отрабатывае до конца. идет поиск Added по одном удокументу)

всем спасибо за советы.