Hi,
I tried this macro. when we run the macro while it reach the line Oheaderfields("CUSTOMER").value = "1200". it is
generating an error "view call failed". if i use oHeaderFields(word(0)).Value = str((word(1))) it is working. But when i insert the Header information it is generating an another error "Customer No 1200 Does not Exist". I have no idea on this to solve this issue.i have been fighting with this issue for the past two days. Pls help me.
Dim oSession As ACCPACXAPILib.xapiSession
Set oSession = New ACCPACXAPILib.xapiSession
On Error GoTo ACCPACErrorHandler ' Set error handler
Dim TCOMMENT As String
Dim invnum As String
invnum = ""
oSession.Open user, password, database, Date, 0 'Open a session with current date
Dim oHeader As ACCPACXAPILib.xapiView
Dim oHeaderFields As ACCPACXAPILib.xapiFields
Set oHeader = oSession.OpenView("OE0520", "OE")
Set oHeaderFields = oHeader.Fields
Dim oDetail As ACCPACXAPILib.xapiView
Dim oDetailFields As ACCPACXAPILib.xapiFields
Set oDetail = oSession.OpenView("OE0500", "OE")
Set oDetailFields = oDetail.Fields
Dim oOrderSerial As ACCPACXAPILib.xapiView
Dim oOrderSerialFields As ACCPACXAPILib.xapiFields
Set oOrderSerial = oSession.OpenView("OE0680", "OE")
Set oOrderSerialFields = oOrderSerial.Fields
Dim oOrderCom As ACCPACXAPILib.xapiView
Dim oOrderComFields As ACCPACXAPILib.xapiFields
Set oOrderCom = oSession.OpenView("OE0180", "OE")
Set oOrderComFields = oOrderCom.Fields
Dim oOrderPayment As ACCPACXAPILib.xapiView
Dim oOrderPaymentFields As ACCPACXAPILib.xapiFields
Set oOrderPayment = oSession.OpenView("OE0740", "OE")
Set oOrderPaymentFields = oOrderPayment.Fields
oHeader.Compose Array(oDetail, oOrderSerial, oOrderCom, oOrderPayment, Nothing, Nothing, Nothing, Nothing, Nothing)
oDetail.Compose Array(oHeader, Nothing)
oOrderPayment.Compose Array(oHeader, Nothing)
oOrderCom.Compose Array(oHeader, Nothing, oDetail)
oOrderSerial.Compose Array(oHeader, Nothing, oDetail)
oHeader.Cancel
temp = oHeader.Exists
oHeader.Init
'1. Customer Details Add Begin
oHeader.Fields("ORDDATE") = CDate(Date)
oHeader.Fields("ORDDATE") = CDate(Date)
oHeader.Fields("EXPDATE") = CDate(Date)
oHeader.Fields("DESC") = "Generated by cust1st"
Dim inputStr As String
Dim word As Variant
Dim ordate As Variant
MsgBox ("1")
Open App.Path & "\" & FILENAME For Input As #1
Do
Line Input #1, inputStr
If inputStr = "**" Then
Exit Do
Else
word = Split(inputStr, ":", 2, 1)
If word(0) = "ORDDATE" Then
ordate = Date + word(1)
oHeaderFields(word(0)).Value = ordate
Else
oHeaderFields(word(0)).Value = (word(1))
End If
End If
Loop
'1.End of the Coding for header information
oDetailFields("LINENUM").PutWithoutVerification ("0")
oOrderPayment.Browse "", 1
oOrderPaymentFields("PAYMENT").PutWithoutVerification ("-2")
oOrderPayment.Browse "", -1
oOrderPayment.Fetch
inputStr = ""
Do
oDetail.Read
oDetail.Init
Do
Line Input #1, inputStr
If inputStr = "**" Or inputStr = "*" Then
Exit Do
Else
word = Split(inputStr, ":", 2, 1)
If word(0) = "MISCCHARGE" Then oDetailFields("LINETYPE").PutWithoutVerification ("2")
If word(0) = "ITEM" Then oDetailFields("LINETYPE").PutWithoutVerification ("1")
If word(0) = "COIN" Then
oDetailFields("COMMINST").Value = "1"
oOrderCom.Browse "(COINTYPE=1)", -1
oOrderCom.Fetch
TCOMMENT = ""
Do
Line Input #1, inputStr
If inputStr = "END" Then Exit Do
oOrderCom.Init
oOrderComFields("COIN").Value = inputStr
oOrderCom.Insert
Loop
Else
oDetailFields(word(0)).Value = word(1)
End If
End If
Loop
If inputStr = "**" Then
oDetail.Insert
Exit Do
Else
oDetail.Insert
End If
Loop
oDetail.Update
oHeaderFields("gochkcrdt").Value = "1"
oHeader.Process
oHeader.Insert
Thanks
Saravana Bavan.T