• Error "IM_ItemWarehouse does not have correct permissions" when using IM_ItemWarehouse_bus or _svc (v2021 with Update 2)

    I'm receiving a cryptic error stating "IM_ItemWarehouse" does not have correct permissions when I do a SetKeyValue and Find via IM_ItemWarehouse_bus (and _svc).  Code is below.  I've also tried using a SetBrowseFilter and that works until…

  • Object Reference & Table name for Customer Price Schedule --> Pricing Method --> Price Discount Amount

    Hi All,

    Need object reference & table name for Item Maintenance --> More --> Item Pricing Maintenance --> Customer Price Schedule --> Pricing Method --> Price Discount Amount to pull the discounted price by running the script. 

    I right…

  • issue with an external BOI script to populate and post cash receipts entries

    Hello all, 

    I'm seeing an odd issue with an external BOI script to populate and post cash receipts entries.

    The short story is that automatic posting results in a duplicate bank rec deposit entry and leaves an orphaned deposit record in AR_CashReceiptsDeposit…

  • How to use the "SO_PickingSheetPrinting" method "SelectOrder" to queue sales order picking sheets to be printed

    From a BOI script I would like to select individual orders so that a type "4" record will be added to "SO_SalesOrderPrint" table. The method "SelectOrder" calls for two separated string parameters: "hdrRec$" and "dtrRec$". This is confusing. Why would…

  • C# Create Sales Invoice From Sales Order; nSetKey() fails, sLastErrorMsg = "The [InvoiceNo] is invalid"

    I am on Sage 100c Standard 2016 (Version (yes, I know it is very old, and have plans to upgrade to a supported version).  I am attempting to create a program in C# that creates a sales invoice from a sales order.

    When my program executes the…

  • How to get business object names for table from Sage 100 BOI

    Is there a way to get a list of all the business object names for a table from the Sage 100 BOI? The SY_File object from the FileObj property on the session object seems to have methods to get a list of all the table names. Looking to expand on that where…

  • Using BOI to print Quote

    Looking to use the BOI to retrieve a quote as a PDF. Can see topics here about generating sales orders as PDF's, example:


  • Forcing Price override for SO_Invoice Line

    I'm currently trying to integrate SO_Invoice using BOI and needing to override pricing on the line item,

    below is snippet of the code on the line level

     retVal = oSOInvoice.oLines.nAddLine()
     retVal = oSOInvoice.oLines.nSetValue("ItemCode$", "XX…

  • How to automatically create Work Ticket in Production Management from Sales Order using BOI

    I have built an order importer that automatically creates sales orders based off of an EDI file from our customers.  It works great.  We are currently upgrading Sage 100 to include Production Management Plus and I want to be able to add in the ability to…

  • A batch number is not set up when creating invoice using BOI

    Hi all, 

    I was searching around and was not able to find issue that would provide me a hint on the problem I'm currently facing and was hoping to request some help from the community.

    I'm getting the error of.. A batch number is not set up


  • creating a receipt of invoice with BOI

    Hi, I'm trying to write a code to create a new invoice from PO

    1. set the key ReceiptType$
    2. set the key ReceiptNo$
    3. call setKey()
    4. set PurchaseOrderNo$
    5. set InvoiceNo$

    Now i want to add the lines of the po to the receipt. In addition, i want it to be multiple…

  • GetResultSets pagination

    Is there a way to paginate the GetResultSets() function in boi? I'm thinking sort of like how in SQL, you can use OFFSET and LIMIT to divide the query results into multiple pages. Is there a way to do that with the GetResultSets() function?

  • UDF Date filter not working with SO Printing Script - BUG?

    Huge thanks to David Speck for your code and your expertise.

    I've got a script that works well for printing all SOs, but I'm trying to filter it down using a UDF Date Parameter (UDF_Delivery_By) we have in SO Printing.  I'm certain I have my syntax…

  • Error printing SO using BOI


    I'm getting the error below indicating the module (S/O), company key (0000004), and the UI.  I'm hoping there's something obviously amiss with the code below and that another set of eyes will spot the error. 

    And a huge thanks to David…

  • Is DeactivateProcedure usable on external scripts?

    I've used DeactivateProcedure on scripts running within Sage, but not on external scripts.  I'm working on a script that requires me to disable procedures in SO Entry.  I've tried a few variations, but I'm getting "Object doesn't support this property…

  • Object Handle to UDT in PowerShell or C#


    I need to establish an object handle in PowerShell to a UDT. I know how to do it in VBScript. Does anyone know the proper syntax in PS? If not C# would be helpful as well because I could try to figure it out from there.

    For regular object handles…

  • SO SalesJournal Update via BOI - retVal = 0 in nSelectBatch


    I am working on a script that modifies the comment on a batch, sets it to private, and eventually attempts to post batches. I am getting the following error message when attempting to do the nSelectBatch on the SO_SalesJournal_upd object:


  • BOI - Bypass Separate Check Popup

    I'm working on a BOI script to create Manual Check entries from a CSV. 

    Everything can import successfully, except when the invoice was set with SeparateCheck = "Y". In regular UI, you get the popup message "The Invoice ____ is flagged for separate…

  • Copy invoice from AR_InvoiceHistory to flat file

    I have most of this script working but am hung up on the part reading from the line detail object.  I have created a button on the AR Invoice History Inquiry panel so that the end user can find the invoice they want to copy, press the button, and the flat…

  • oScript.LinesAdded not working on version 2020

    Has anyone been able to use oScript.LinesAdded on a script in version 2020?  I happen to be on 2020 with PU 1.  I'm using it to refresh the grid on the Lines tab in SO Entry after adding lines, but it's not working.  I have to go to another tab and…

  • UDT eof error

    I'm getting an error stating "Error 20 Syntax Error.  Program: SY_Commonui.pvc" when I loop through a UDT using a button script.  Perhaps I have a typo or other mistake here.  It appears to be crashing on the eof check (highlighted in green…

  • BOI for Sage100 ERP - BM Production Entry - How to Get BOI Logic to Explode Bill Components

    I am using BOI to automatically create production entries in BOM in Sage100 ERP. I realize Sage100 ERP support is obsolete, but it is what our company still has and we plan to update in the next year.

    I have some code I threw together below for testing…

  • Quantity on sales order does not match order tab quantity

    Sage 100c Advanced SQL 2018

    So I think this is happening because of me... 

    Before last year, when we pulled orders on paper, we would take the sales order and move it to invoicing, then key punch all of the backorders on the Sales Order Invoice…

  • Trying to set pricing, "The Price Code Record is Required" (even though it's set)


    The error was in my KeySet() line. Instead of: 


     var retval = Core.SageObject.Process(pcObject.InvokeMethod("nSetKey", ""), pcObject).ReturnCode;

    It should have been:
     var retval = Core.SageObject.Process(pcObject.InvokeMethod…
  • Exception on nWrite in CI_Item in C#


    I have a small app that writes to CI_Item. It has been working with no issues in Sage 100 v2017 Premium for my client in a Sage Server / Terminal Server setting. Now they are on v2020 Premium in the same setup (new servers), but we are running…