Sub MainSub()
'
' Sage 300 Macro file: C:\Data\Macros\make batches post.avb
' Recorded at: Fri Sep 21 16:19:30 2018
'
On Error GoTo ACCPACErrorHandler
Dim mDBLinkCmpRW As AccpacCOMAPI.AccpacDBLink
Set mDBLinkCmpRW = OpenDBLink(DBLINK_COMPANY, DBLINK_FLG_READWRITE)
Dim GLBATCH1batch As AccpacCOMAPI.AccpacView
mDBLinkCmpRW.OpenView "GL0008", GLBATCH1batch
Dim GLBATCH1header As AccpacCOMAPI.AccpacView
mDBLinkCmpRW.OpenView "GL0006", GLBATCH1header
Dim GLBATCH1detail1 As AccpacCOMAPI.AccpacView
mDBLinkCmpRW.OpenView "GL0010", GLBATCH1detail1
Dim GLBATCH1detail2 As AccpacCOMAPI.AccpacView
mDBLinkCmpRW.OpenView "GL0402", GLBATCH1detail2
GLBATCH1batch.Compose Array(GLBATCH1header)
GLBATCH1header.Compose Array(GLBATCH1batch, GLBATCH1detail1)
GLBATCH1detail1.Compose Array(GLBATCH1header, GLBATCH1detail2)
GLBATCH1detail2.Compose Array(GLBATCH1detail1)
Dim GLPOST2 As AccpacCOMAPI.AccpacView
mDBLinkCmpRW.OpenView "GL0030", GLPOST2
GLBATCH1batch.Browse "BATCHSTAT = 1", True
Do While GLBATCH1batch.Fetch
GLBATCH1batch.Fields("PROCESSCMD").PutWithoutVerification ("2") ' Lock Batch Switch
GLBATCH1batch.Process
GLBATCH1batch.Fields("RDYTOPOST").Value = "1" ' Ready to Post
GLBATCH1batch.Update
GLBATCH1batch.Fields("PROCESSCMD").PutWithoutVerification ("0") ' Lock Batch Switch
GLBATCH1batch.Process
Loop
MsgBox "Done"
Exit Sub
ACCPACErrorHandler:
Dim lCount As Long
Dim lIndex As Long
If Errors Is Nothing Then
MsgBox Err.Description
Else
lCount = Errors.Count
If lCount = 0 Then
MsgBox Err.Description
Else
For lIndex = 0 To lCount - 1
MsgBox Errors.Item(lIndex)
Next
Errors.Clear
End If
Resume Next
End If
End Sub
Sage 300 Whisperer