Hi Guys,
I am having an issue while updating Inventory Counts in SAGE.
I have created the Macro but while processing the Inventory Worksheet, it returns following error:
Method Process of the 'lAccPacView' failed
Has someone sucessfully updated Inventory Counts in Sage through the SDK?
Below is the Macro. I have edited it as the Macro created by SAGE does not have the filters in the ICWKU2detail1.Browse "", 1 statement.
Sub MainSub() ' ' Sage 300 ERP Macro file: C:\Jose Macro\Stocktake7.AVB ' Recorded at: Mon Aug 17 14:36:44 2015 '
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 ICWKL1header As AccpacCOMAPI.AccpacView Dim ICWKL1headerFields As AccpacCOMAPI.AccpacViewFields mDBLinkCmpRW.OpenView "IC0770", ICWKL1header Set ICWKL1headerFields = ICWKL1header.Fields
Dim ICWKL1detail As AccpacCOMAPI.AccpacView Dim ICWKL1detailFields As AccpacCOMAPI.AccpacViewFields mDBLinkCmpRW.OpenView "IC0775", ICWKL1detail Set ICWKL1detailFields = ICWKL1detail.Fields
ICWKL1header.Compose Array(Nothing, ICWKL1detail)
ICWKL1detail.Compose Array(ICWKL1header)
Dim ICWKGEN3 As AccpacCOMAPI.AccpacView Dim ICWKGEN3Fields As AccpacCOMAPI.AccpacViewFields mDBLinkCmpRW.OpenView "IC0760", ICWKGEN3 Set ICWKGEN3Fields = ICWKGEN3.Fields
Dim ICWKU2header As AccpacCOMAPI.AccpacView Dim ICWKU2headerFields As AccpacCOMAPI.AccpacViewFields mDBLinkCmpRW.OpenView "IC0790", ICWKU2header Set ICWKU2headerFields = ICWKU2header.Fields
Dim ICWKU2detail1 As AccpacCOMAPI.AccpacView Dim ICWKU2detail1Fields As AccpacCOMAPI.AccpacViewFields mDBLinkCmpRW.OpenView "IC0780", ICWKU2detail1 Set ICWKU2detail1Fields = ICWKU2detail1.Fields
Dim ICWKU2detail2 As AccpacCOMAPI.AccpacView Dim ICWKU2detail2Fields As AccpacCOMAPI.AccpacViewFields mDBLinkCmpRW.OpenView "IC0795", ICWKU2detail2 Set ICWKU2detail2Fields = ICWKU2detail2.Fields
Dim ICWKU2detail3 As AccpacCOMAPI.AccpacView Dim ICWKU2detail3Fields As AccpacCOMAPI.AccpacViewFields mDBLinkCmpRW.OpenView "IC0793", ICWKU2detail3 Set ICWKU2detail3Fields = ICWKU2detail3.Fields
Dim ICWKU2detail4 As AccpacCOMAPI.AccpacView Dim ICWKU2detail4Fields As AccpacCOMAPI.AccpacViewFields mDBLinkCmpRW.OpenView "IC0797", ICWKU2detail4 Set ICWKU2detail4Fields = ICWKU2detail4.Fields
ICWKU2header.Compose Array(ICWKU2detail1, Nothing, Nothing, Nothing, ICWKU2detail2, ICWKU2detail3, ICWKU2detail4)
ICWKU2detail1.Compose Array(ICWKU2header, Nothing)
ICWKU2detail2.Compose Array(ICWKU2header)
ICWKU2detail3.Compose Array(ICWKU2header)
ICWKU2detail4.Compose Array(ICWKU2header)
ICWKL1headerFields("PROCACTION").PutWithoutVerification ("2")
' Process Action ICWKL1header.Process
temp = ICWKL1header.Exists
ICWKL1headerFields("LOCATION").Value = "PPPS" ' Location
ICWKL1header.Read ICWKU2detail1Fields("UNIT").PutWithoutVerification ("") ' Unit of Measure
ICWKU2detail1.Browse "", 1
ICWKU2detail1.Fetch
temp = ICWKL1header.Exists
temp = ICWKL1header.Exists
ICWKU2detail1Fields("UNIT").PutWithoutVerification ("Each") ' Unit of Measure ICWKU2detail1.Read
ICWKU2detail1Fields("QTYCOUNTED").PutWithoutVerification ("41.0000") ' Quantity Counted
ICWKU2detail1.Update
ICWKU2detail1.Update
ICWKU2detail1.Browse "", 1
ICWKU2detail1Fields("UNIT").PutWithoutVerification ("Each") ' Unit of Measure
ICWKU2detail1.Read
ICWKU2detail1Fields("QTYCOUNTED").PutWithoutVerification ("166.0000") ' Quantity Counted
ICWKU2detail1.Update
ICWKU2detail1.Update
ICWKU2detail1Fields("UNIT").PutWithoutVerification ("") ' Unit of Measure
ICWKU2detail1.Browse "", 1
ICWKU2detail1.Fetch
temp = ICWKL1header.Exists
ICWKL1headerFields("PROCACTION").PutWithoutVerification ("3") ' Process Action
ICWKL1header.Process
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
Thanks...