Advertisement
Guest User

Untitled

a guest
Sep 12th, 2017
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.70 KB | None | 0 0
  1. ' Script replicates an issue with shipping entry creation.
  2. ' It prompts for arguments, please enter as appropriate:
  3. ' - Sage 100 company User Name.
  4. ' - Password.
  5. ' - Company.
  6. ' - Sales order number to create a shipping entry off.
  7. ' - Customer division number.
  8. ' - Customer number.
  9. ' - Batch ID (going to be ignored if no batches enabled).
  10. ' - Shipper ID.
  11. ' Indication of the issue replicated:
  12. ' - Error message: Error document not found: The 003091800000200000000000002 is invalid.
  13. ' (the key is just an example)
  14.  
  15. Sub errchk(r, desc, o)
  16. if (r = 0) then
  17. MsgBox("Error " & desc & ": " & o.sLastErrorMsg)
  18. oss.nCleanup()
  19. oss.DropObject()
  20. Set oss = Nothing
  21. WScript.Quit
  22. end if
  23. end sub
  24.  
  25. 'Create ProvideX COM Object
  26. Set oScript = CreateObject ("ProvideX.Script")
  27.  
  28. 'oScript.TraceOn=true
  29.  
  30. 'Get the ODBC path for the last accessed installation of MAS 90/200
  31. Const HKEY_CURRENT_USER = &H80000001
  32. Set oReg = GetObject("winmgmts:\\.\root\default:StdRegProv")
  33. oReg.GetExpandedStringValue HKEY_CURRENT_USER,"Software\ODBC\ODBC.INI\SOTAMAS90","Directory",PathRoot
  34. PathHome = PathRoot & "\Home"
  35. 'MsgBox(PathHome)
  36. Set oReg = Nothing
  37.  
  38. 'The Init method must be the first method called
  39. oScript.Init(PathHome)
  40.  
  41. 'The Session object must be the first MAS 90 object created
  42. Set oSS = oScript.NewObject("SY_Session")
  43.  
  44. ' Set the user for the Session
  45. r = oSS.nLogon()
  46. If r=0 Then
  47. '''''''''''''''''''''''
  48. ' Enter: username, password
  49. user = Trim(InputBox("Enter User Name", "", "alex"))
  50. password = Trim(InputBox("Enter Password", "", ""))
  51. retVAL = oSS.nSetUser(User,Password)
  52.  
  53. r = oss.nSetUser(user, password)
  54. errchk r, "logging in", oss
  55. End If
  56.  
  57. ' Set the company, module date and module for the Session
  58. company = Trim(InputBox("Enter Company", "", "PRG"))
  59. r = oss.nsetcompany(company)
  60. errchk r, "setting company", oss
  61.  
  62. ' Read input parameters
  63. orderNumber = trim(InputBox("Enter Sales Order Number", "", "0008770"))
  64. divisionNumber = trim(InputBox("Enter customer division number", "", "02"))
  65. customerNumber = trim(InputBox("Enter customer number", "", "52849-8"))
  66.  
  67. ' Prompt for a batch ID
  68. batchOptions = "N"
  69. Set oBatchOptions = oScript.NewObject("SY_BATCHOPTIONS_SVC", oSS)
  70. r = oBatchOptions.nFind("S/O01")
  71. errchk r, "Finding batch options", oBatchOptions
  72. r = oBatchOptions.nGetValue("ENABLEBATCHENTRY$", batchOptions)
  73. errchk r, "Getting batch options", oBatchOptions
  74. batchId = ""
  75. nextBatchNumber = ""
  76. if batchOptions = "Y" then
  77. batchId = trim(InputBox("Enter Batch ID", "", "0906F"))
  78. ' nextBatchNumber = oBatchOptions.nGetValue("NEXTBATCHNO$")
  79. end if
  80.  
  81. shipperId = ""
  82. shipperId = trim(InputBox("Enter Shipper ID", "", "01"))
  83.  
  84. sDate = oSS.sModuleDate
  85. if sDate = "" then
  86. sDate = Year(Date) & Right("0" & Month(Date), 2) & Right("0" & Day(Date), 2)
  87. end if
  88. retVAL = oSS.nSetDate("S/O",sDate)
  89. r = oSS.nSetModule("S/O")
  90. errchk r, "Setting module", oSS
  91.  
  92. ' Creating business object
  93. oSEC = oSS.nSetProgram(oSS.nLookupTask("SO_Shipping_UI"))
  94. Set oHeader = oScript.NewObject("SO_Shipping_bus", oSS)
  95. fields = oHeader.sGetDataSources
  96. 'MsgBox(fields)
  97.  
  98. ' Getting the next invoice #
  99. nextInvoiceNo = ""
  100. r = oHeader.nGetNextInvoiceNo(nextInvoiceNo)
  101. errchk r, "Getting next invoice number", oHeader
  102.  
  103. ' Selecting a batch
  104. if batchOptions = "Y" then
  105. r = oHeader.nSelectBatch(batchId)
  106. errchk r, "Selecting the batch", oHeader
  107. 'MsgBox("Selected")
  108. end if
  109.  
  110. r = oHeader.nSetKeyValue("InvoiceNo$", nextInvoiceNo)
  111. errchk r, "Setting invoice number", oHeader
  112. r = oHeader.nSetKey()
  113. errchk r, "Selecting the invoice", oHeader
  114. r = oHeader.nSetValue("ShipperID$", shipperId)
  115. errchk r, "setting shipper ID", oHeader
  116. r = oHeader.nSetValue("SalesOrderNo$", orderNumber)
  117. 'errchk r, "setting order number", oHeader
  118. r = oHeader.nSetValue("ARDivisionNo$", divisionNumber)
  119. 'errchk r, "setting division number", oHeader
  120. r = oHeader.nSetValue("CustomerNo$", customerNumber)
  121. 'errchk r, "setting customer number", oHeader
  122.  
  123. ' Clearing out line items to copy from scratch
  124. r = oHeader.oLines.nClear
  125. errchk r, "clear lines", oHeader.oLines
  126.  
  127. ' Copying line items.
  128. r = oHeader.oLines.nCopyLinesFromSalesOrder(orderNumber, "Y")
  129. errchk r, "copy lines", oHeader.oLines
  130.  
  131. MsgBox "Document selected"
  132.  
  133. r = oHeader.oLines.nMoveFirst
  134.  
  135. ' Reading a key value
  136. invoiceNumber=""
  137. lineSequenceNumber=""
  138. lineKey=""
  139. r = oHeader.oLines.nGetValue("INVOICENO$", invoiceNumber)
  140. r = oHeader.oLines.nGetValue("LineSeqNo$", lineSequenceNumber)
  141. r = oHeader.oLines.nGetValue("LINEKEY$", lineKey)
  142.  
  143. key = invoiceNumber+lineSequenceNumber+lineKey
  144. MsgBox "Searching for key: '" + key
  145.  
  146. ' Searching by key
  147. r = oHeader.oLines.nFind(key)
  148. errchk r, "document not found", oHeader.oLines
  149.  
  150. ' Done with the Invoice object
  151. r = oHeader.DropObject()
  152. oHeader = 0
  153.  
  154. Wscript.Echo "DONE"
  155.  
  156. oss.nCleanup() ' Call Cleanup() before dropping the Session Object
  157. oss.DropObject()
  158. Set oss = Nothing
  159. WScript.Quit
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement