Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations TouchToneTommy on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

PO Return detail item insert error

Status
Not open for further replies.

sara403

Technical User
Jun 10, 2008
58
IN
Hi
I tried the macro which is shown below, to create a PO return in AAS5.4A. It works fine and creates a new PO return entry in ACCpac. But the problem is i am inserting multiple line items (line1, line2,line3...), but only one line item is displayed in Accpac 5.4A (i.e last line item is displayed PO return Screen)

Please guide me where i was wrong.

Dim TCOMMENT As String

Dim Session As AccpacCOMAPI.AccpacSession
Set Session = AccpacCOMAPI.AccpacSession
invnum = ""

Session.Init "", "AS", "AS1000", "54A"
Session.Open user, password, database, Date, 0, ""

Dim son As New AccpacSignonManager.AccpacSignonMgr

Dim sid As Long

If Session.IsOpened = True Then
sid = son.RegisterSignon(user, password, database, Date, 0)
Set mDBLinkCmpRW = Session.OpenDBLink(DBLINK_COMPANY, DBLINK_FLG_READWRITE)
End If

Dim temp As Boolean

On Error GoTo ACCPACErrorHandler ' Set error handler


' Declare the views
Dim PORET1header As AccpacCOMAPI.AccpacView
Dim PORET1detail1 As AccpacCOMAPI.AccpacView
Dim PORET1detail2 As AccpacCOMAPI.AccpacView
Dim PORET1detail3 As AccpacCOMAPI.AccpacView
Dim PORET1detail4 As AccpacCOMAPI.AccpacView
Dim PORET1detail5 As AccpacCOMAPI.AccpacView

mDBLinkCmpRW.OpenView "PO0731", PORET1header
mDBLinkCmpRW.OpenView "PO0735", PORET1detail1
mDBLinkCmpRW.OpenView "PO0729", PORET1detail2
mDBLinkCmpRW.OpenView "PO0730", PORET1detail3
mDBLinkCmpRW.OpenView "PO0738", PORET1detail4
mDBLinkCmpRW.OpenView "PO0739", PORET1detail5

PORET1header.Compose Array(PORET1detail2, PORET1detail1, PORET1detail3, PORET1detail4)

PORET1detail1.Compose Array(PORET1header, PORET1detail2, PORET1detail3, Nothing, Nothing, PORET1detail5)

PORET1detail2.Compose Array(PORET1header, PORET1detail1)

PORET1detail3.Compose Array(PORET1header, PORET1detail2, PORET1detail1)

PORET1detail4.Compose Array(PORET1header)

PORET1detail5.Compose Array(PORET1detail1)


Open FILENAME For Input As #1
Dim inputStr As String
Dim word As Variant
Dim TITEMNO As String
Dim TLOCATION As String
Dim TRQRETURNED As String
Dim TUNITCOST As String
Dim THASCOMMENT As String
Dim TVDCODE As String

Do Until EOF(1)
Line Input #1, inputStr

If inputStr = "*" Then
Exit Do
Else

word = Split(Trim(inputStr), " ", 2, 1)
Select Case word(0)
Case "VDCODE"
TVDCODE = word(1)
Case "ITEMNO"
TITEMNO = word(1)
Case "LOCATION"
TLOCATION = word(1)
Case "RQRETURNED"
TRQRETURNED = word(1)
Case "UNITCOST"
TUNITCOST = word(1)
Case "HASCOMMENT"
THASCOMMENT = word(1)
Case "COMMENT"
TCOMMENT = word(1)
Line Input #1, inputStr
word = Split(Trim(inputStr), " ", 2, 1)
If word(0) <> "-----" Then
TCOMMENT = TCOMMENT + word(1)
End If
Line Input #1, inputStr
word = Split(Trim(inputStr), " ", 2, 1)
If word(0) <> "-----" Then
TCOMMENT = TCOMMENT + word(1)
End If
End Select
End If

If word(0) = "-----" Then
PORET1header.Order = 1
PORET1header.Order = 0

PORET1header.Fields("RETHSEQ").PutWithoutVerification ("0") ' Return Sequence Key

PORET1header.Init
PORET1header.Order = 1
PORET1detail1.RecordClear
PORET1detail2.Init
PORET1header.Fields("VDCODE").Value = TVDCODE ' Vendor

PORET1detail1.RecordClear
PORET1detail1.RecordCreate 0

PORET1detail1.Fields("ITEMNO").Value = TITEMNO ' Item Number
PORET1detail1.Fields("LOCATION").Value = TLOCATION ' Location
PORET1detail1.Fields("RQRETURNED").Value = TRQRETURNED ' Quantity Returned
PORET1detail1.Insert

PORET1detail1.Fields("RETLREV").PutWithoutVerification ("-1") ' Line Number

PORET1detail1.Read

PORET1detail1.Read
PORET1detail3.Fields("FUNCTION").PutWithoutVerification ("7") ' Function
PORET1detail3.Process
End If
Loop
temp = PORET1header.Exists
PORET1header.Insert

GENPORETURN1 = PORET1header.Fields("RETNUMBER").Value
MsgBox GENPORETURN1 + " Is Generated", , "Information"
Close #1

Thanks

saravana Bavan.T
 
You are only creating one PO detail.

You would have to repeat

PORET1detail1.RecordCreate 0
PORET1detail1.Fields("ITEMNO").Value = TITEMNO
PORET1detail1.Fields("LOCATION").Value = TLOCATION
PORET1detail1.Fields("RQRETURNED").Value = TRQRETURNED
PORET1detail1.Insert

for the additional detail lines.

Record a macro!
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top