Hi All,
I recorded an macro of Payment Entry in SAGE 300 2018, but there are no records of Payment detail in there.
this is the generated macro of Payment Entry.
Sub MainSub()
'
' Sage 300 Macro file: D:\Sage\Macro\Payment.AVB
' Recorded at: Mon Aug 13 10:10:27 2018
'
On Error GoTo ACCPACErrorHandler
' TODO: To increase efficiency, comment out any unused DB links.
Dim mDBLinkCmpRW As AccpacCOMAPI.AccpacDBLink
Set mDBLinkCmpRW = OpenDBLink(DBLINK_COMPANY, DBLINK_FLG_READWRITE)
Dim mDBLinkSysRW As AccpacCOMAPI.AccpacDBLink
Set mDBLinkSysRW = OpenDBLink(DBLINK_SYSTEM, DBLINK_FLG_READWRITE)
Dim temp As Boolean
Dim APPAYMENT1batch As AccpacCOMAPI.AccpacView
Dim APPAYMENT1batchFields As AccpacCOMAPI.AccpacViewFields
mDBLinkCmpRW.OpenView "AP0030", APPAYMENT1batch
Set APPAYMENT1batchFields = APPAYMENT1batch.Fields
Dim APPAYMENT1header As AccpacCOMAPI.AccpacView
Dim APPAYMENT1headerFields As AccpacCOMAPI.AccpacViewFields
mDBLinkCmpRW.OpenView "AP0031", APPAYMENT1header
Set APPAYMENT1headerFields = APPAYMENT1header.Fields
Dim APPAYMENT1detail1 As AccpacCOMAPI.AccpacView
Dim APPAYMENT1detail1Fields As AccpacCOMAPI.AccpacViewFields
mDBLinkCmpRW.OpenView "AP0033", APPAYMENT1detail1
Set APPAYMENT1detail1Fields = APPAYMENT1detail1.Fields
Dim APPAYMENT1detail2 As AccpacCOMAPI.AccpacView
Dim APPAYMENT1detail2Fields As AccpacCOMAPI.AccpacViewFields
mDBLinkCmpRW.OpenView "AP0034", APPAYMENT1detail2
Set APPAYMENT1detail2Fields = APPAYMENT1detail2.Fields
Dim APPAYMENT1detail3 As AccpacCOMAPI.AccpacView
Dim APPAYMENT1detail3Fields As AccpacCOMAPI.AccpacViewFields
mDBLinkCmpRW.OpenView "AP0032", APPAYMENT1detail3
Set APPAYMENT1detail3Fields = APPAYMENT1detail3.Fields
Dim APPAYMENT1detail4 As AccpacCOMAPI.AccpacView
Dim APPAYMENT1detail4Fields As AccpacCOMAPI.AccpacViewFields
mDBLinkCmpRW.OpenView "AP0048", APPAYMENT1detail4
Set APPAYMENT1detail4Fields = APPAYMENT1detail4.Fields
Dim APPAYMENT1detail5 As AccpacCOMAPI.AccpacView
Dim APPAYMENT1detail5Fields As AccpacCOMAPI.AccpacViewFields
mDBLinkCmpRW.OpenView "AP0170", APPAYMENT1detail5
Set APPAYMENT1detail5Fields = APPAYMENT1detail5.Fields
Dim APPAYMENT1detail6 As AccpacCOMAPI.AccpacView
Dim APPAYMENT1detail6Fields As AccpacCOMAPI.AccpacViewFields
mDBLinkCmpRW.OpenView "AP0406", APPAYMENT1detail6
Set APPAYMENT1detail6Fields = APPAYMENT1detail6.Fields
APPAYMENT1batch.Compose Array(APPAYMENT1header)
APPAYMENT1header.Compose Array(APPAYMENT1batch, APPAYMENT1detail3, APPAYMENT1detail1, APPAYMENT1detail6, APPAYMENT1detail5)
APPAYMENT1detail1.Compose Array(APPAYMENT1header, APPAYMENT1detail2, APPAYMENT1detail4)
APPAYMENT1detail2.Compose Array(APPAYMENT1detail1)
APPAYMENT1detail3.Compose Array(APPAYMENT1header)
APPAYMENT1detail4.Compose Array(APPAYMENT1batch, APPAYMENT1header, APPAYMENT1detail3, APPAYMENT1detail1, APPAYMENT1detail2)
APPAYMENT1detail5.Compose Array(APPAYMENT1header)
APPAYMENT1detail6.Compose Array(APPAYMENT1header)
Dim APPAYMPOST2 As AccpacCOMAPI.AccpacView
Dim APPAYMPOST2Fields As AccpacCOMAPI.AccpacViewFields
mDBLinkCmpRW.OpenView "AP0040", APPAYMPOST2
Set APPAYMPOST2Fields = APPAYMPOST2.Fields
APPAYMENT1batch.RecordClear
APPAYMENT1batchFields("PAYMTYPE").PutWithoutVerification ("PY") ' Batch Selector
APPAYMENT1headerFields("BTCHTYPE").PutWithoutVerification ("PY") ' Batch Type
APPAYMENT1detail3Fields("BATCHTYPE").PutWithoutVerification ("PY") ' Batch Type
APPAYMENT1detail1Fields("BATCHTYPE").PutWithoutVerification ("PY") ' Batch Type
APPAYMENT1detail2Fields("BATCHTYPE").PutWithoutVerification ("PY") ' Batch Type
temp = APPAYMENT1header.Exists
temp = APPAYMENT1header.Exists
temp = APPAYMENT1header.Exists
APPAYMENT1batch.Browse "((PAYMTYPE = ""PY"") AND ((BATCHSTAT = 1) OR (BATCHSTAT = 7) OR (BATCHSTAT = 8)))", 1
APPAYMENT1batchFields("PAYMTYPE").PutWithoutVerification ("PY") ' Batch Selector
APPAYMENT1batchFields("CNTBTCH").PutWithoutVerification ("0") ' Batch Number
APPAYMENT1batch.RecordCreate 1
APPAYMENT1batchFields("PROCESSCMD").PutWithoutVerification ("1") ' Process Command Code
APPAYMENT1batch.Process
temp = APPAYMENT1header.Exists
temp = APPAYMENT1header.Exists
temp = APPAYMENT1header.Exists
temp = APPAYMENT1header.Exists
APPAYMENT1header.RecordCreate 2
temp = APPAYMENT1header.Exists
temp = APPAYMENT1header.Exists
temp = APPAYMENT1header.Exists
APPAYMENT1batchFields("BATCHDESC").PutWithoutVerification ("Payment V0229") ' Description
APPAYMENT1batch.Update
APPAYMENT1headerFields("IDVEND").Value = "V0229" ' Vendor Number
APPAYMENT1detail1.Cancel
APPAYMENT1headerFields("PROCESSCMD").PutWithoutVerification ("0") ' Process Command Code
APPAYMENT1header.Process
temp = APPAYMENT1header.Exists
temp = APPAYMENT1header.Exists
temp = APPAYMENT1header.Exists
temp = APPAYMENT1header.Exists
temp = APPAYMENT1header.Exists
APPAYMENT1header.Insert
temp = APPAYMENT1header.Exists
temp = APPAYMENT1header.Exists
temp = APPAYMENT1header.Exists
temp = APPAYMENT1header.Exists
APPAYMENT1batch.Read
APPAYMENT1headerFields("CNTENTR").PutWithoutVerification ("0") ' Entry Number
APPAYMENT1header.RecordCreate 2
temp = APPAYMENT1header.Exists
temp = APPAYMENT1header.Exists
temp = APPAYMENT1header.Exists
temp = APPAYMENT1header.Exists
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
I recorded an macro of Payment Entry in SAGE 300 2018, but there are no records of Payment detail in there.
this is the generated macro of Payment Entry.
Sub MainSub()
'
' Sage 300 Macro file: D:\Sage\Macro\Payment.AVB
' Recorded at: Mon Aug 13 10:10:27 2018
'
On Error GoTo ACCPACErrorHandler
' TODO: To increase efficiency, comment out any unused DB links.
Dim mDBLinkCmpRW As AccpacCOMAPI.AccpacDBLink
Set mDBLinkCmpRW = OpenDBLink(DBLINK_COMPANY, DBLINK_FLG_READWRITE)
Dim mDBLinkSysRW As AccpacCOMAPI.AccpacDBLink
Set mDBLinkSysRW = OpenDBLink(DBLINK_SYSTEM, DBLINK_FLG_READWRITE)
Dim temp As Boolean
Dim APPAYMENT1batch As AccpacCOMAPI.AccpacView
Dim APPAYMENT1batchFields As AccpacCOMAPI.AccpacViewFields
mDBLinkCmpRW.OpenView "AP0030", APPAYMENT1batch
Set APPAYMENT1batchFields = APPAYMENT1batch.Fields
Dim APPAYMENT1header As AccpacCOMAPI.AccpacView
Dim APPAYMENT1headerFields As AccpacCOMAPI.AccpacViewFields
mDBLinkCmpRW.OpenView "AP0031", APPAYMENT1header
Set APPAYMENT1headerFields = APPAYMENT1header.Fields
Dim APPAYMENT1detail1 As AccpacCOMAPI.AccpacView
Dim APPAYMENT1detail1Fields As AccpacCOMAPI.AccpacViewFields
mDBLinkCmpRW.OpenView "AP0033", APPAYMENT1detail1
Set APPAYMENT1detail1Fields = APPAYMENT1detail1.Fields
Dim APPAYMENT1detail2 As AccpacCOMAPI.AccpacView
Dim APPAYMENT1detail2Fields As AccpacCOMAPI.AccpacViewFields
mDBLinkCmpRW.OpenView "AP0034", APPAYMENT1detail2
Set APPAYMENT1detail2Fields = APPAYMENT1detail2.Fields
Dim APPAYMENT1detail3 As AccpacCOMAPI.AccpacView
Dim APPAYMENT1detail3Fields As AccpacCOMAPI.AccpacViewFields
mDBLinkCmpRW.OpenView "AP0032", APPAYMENT1detail3
Set APPAYMENT1detail3Fields = APPAYMENT1detail3.Fields
Dim APPAYMENT1detail4 As AccpacCOMAPI.AccpacView
Dim APPAYMENT1detail4Fields As AccpacCOMAPI.AccpacViewFields
mDBLinkCmpRW.OpenView "AP0048", APPAYMENT1detail4
Set APPAYMENT1detail4Fields = APPAYMENT1detail4.Fields
Dim APPAYMENT1detail5 As AccpacCOMAPI.AccpacView
Dim APPAYMENT1detail5Fields As AccpacCOMAPI.AccpacViewFields
mDBLinkCmpRW.OpenView "AP0170", APPAYMENT1detail5
Set APPAYMENT1detail5Fields = APPAYMENT1detail5.Fields
Dim APPAYMENT1detail6 As AccpacCOMAPI.AccpacView
Dim APPAYMENT1detail6Fields As AccpacCOMAPI.AccpacViewFields
mDBLinkCmpRW.OpenView "AP0406", APPAYMENT1detail6
Set APPAYMENT1detail6Fields = APPAYMENT1detail6.Fields
APPAYMENT1batch.Compose Array(APPAYMENT1header)
APPAYMENT1header.Compose Array(APPAYMENT1batch, APPAYMENT1detail3, APPAYMENT1detail1, APPAYMENT1detail6, APPAYMENT1detail5)
APPAYMENT1detail1.Compose Array(APPAYMENT1header, APPAYMENT1detail2, APPAYMENT1detail4)
APPAYMENT1detail2.Compose Array(APPAYMENT1detail1)
APPAYMENT1detail3.Compose Array(APPAYMENT1header)
APPAYMENT1detail4.Compose Array(APPAYMENT1batch, APPAYMENT1header, APPAYMENT1detail3, APPAYMENT1detail1, APPAYMENT1detail2)
APPAYMENT1detail5.Compose Array(APPAYMENT1header)
APPAYMENT1detail6.Compose Array(APPAYMENT1header)
Dim APPAYMPOST2 As AccpacCOMAPI.AccpacView
Dim APPAYMPOST2Fields As AccpacCOMAPI.AccpacViewFields
mDBLinkCmpRW.OpenView "AP0040", APPAYMPOST2
Set APPAYMPOST2Fields = APPAYMPOST2.Fields
APPAYMENT1batch.RecordClear
APPAYMENT1batchFields("PAYMTYPE").PutWithoutVerification ("PY") ' Batch Selector
APPAYMENT1headerFields("BTCHTYPE").PutWithoutVerification ("PY") ' Batch Type
APPAYMENT1detail3Fields("BATCHTYPE").PutWithoutVerification ("PY") ' Batch Type
APPAYMENT1detail1Fields("BATCHTYPE").PutWithoutVerification ("PY") ' Batch Type
APPAYMENT1detail2Fields("BATCHTYPE").PutWithoutVerification ("PY") ' Batch Type
temp = APPAYMENT1header.Exists
temp = APPAYMENT1header.Exists
temp = APPAYMENT1header.Exists
APPAYMENT1batch.Browse "((PAYMTYPE = ""PY"") AND ((BATCHSTAT = 1) OR (BATCHSTAT = 7) OR (BATCHSTAT = 8)))", 1
APPAYMENT1batchFields("PAYMTYPE").PutWithoutVerification ("PY") ' Batch Selector
APPAYMENT1batchFields("CNTBTCH").PutWithoutVerification ("0") ' Batch Number
APPAYMENT1batch.RecordCreate 1
APPAYMENT1batchFields("PROCESSCMD").PutWithoutVerification ("1") ' Process Command Code
APPAYMENT1batch.Process
temp = APPAYMENT1header.Exists
temp = APPAYMENT1header.Exists
temp = APPAYMENT1header.Exists
temp = APPAYMENT1header.Exists
APPAYMENT1header.RecordCreate 2
temp = APPAYMENT1header.Exists
temp = APPAYMENT1header.Exists
temp = APPAYMENT1header.Exists
APPAYMENT1batchFields("BATCHDESC").PutWithoutVerification ("Payment V0229") ' Description
APPAYMENT1batch.Update
APPAYMENT1headerFields("IDVEND").Value = "V0229" ' Vendor Number
APPAYMENT1detail1.Cancel
APPAYMENT1headerFields("PROCESSCMD").PutWithoutVerification ("0") ' Process Command Code
APPAYMENT1header.Process
temp = APPAYMENT1header.Exists
temp = APPAYMENT1header.Exists
temp = APPAYMENT1header.Exists
temp = APPAYMENT1header.Exists
temp = APPAYMENT1header.Exists
APPAYMENT1header.Insert
temp = APPAYMENT1header.Exists
temp = APPAYMENT1header.Exists
temp = APPAYMENT1header.Exists
temp = APPAYMENT1header.Exists
APPAYMENT1batch.Read
APPAYMENT1headerFields("CNTENTR").PutWithoutVerification ("0") ' Entry Number
APPAYMENT1header.RecordCreate 2
temp = APPAYMENT1header.Exists
temp = APPAYMENT1header.Exists
temp = APPAYMENT1header.Exists
temp = APPAYMENT1header.Exists
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