• BOI PO_PurchaseOrder creation.

    Background: We're using the C# NuGet package.

    When I have a session object (Sage100.ObjectManagement.MasSession), I'm able to do the following (though, actual creation inevitably fails because of needed line items).

    var createObject = session…

  • Sales Order ShipTo address being ignored

    I have a C# dotNet 4.8 web application providing API services into Sage 100, working fine at multiple sites.  At one customer, the Sales Order BOI seems to ignore the ShipToAddress fields on the sales order.  Avatax and Scanforce are installed on this site…

  • BOI not pushing web orders to Sage 100

    We are encountering an issue where CIM Cloud web orders are successfully pushing to the ERP Driver but is failing to create a BOI session. Any suggestions on what other pieces we can troubleshoot before reinstalling the ERP Driver? 

    What we have tried…

  • Copy UDF Values from AR_CUSTOMER.M4T to Equivalent UDFs on new Sales Orders

    New to this forum, and new to using the Business Object Interface.  


    I'm on Sage 100 2022 Standard, and am about to implement Sage Alerts & Workflow.  One of the tasks I will be creating will periodically look at all open Sales Orders and…

  • Persistent connection to Sage BOI with PHP?

    Our company is working on a locally hosted PHP web-server that connects with our local Sage 100 instance for our internal use. So far it's working pretty well, but it takes about 10 seconds to open up a session in Sage 100 with the BOI and execute a script…

  • DFDM Modifications to Allow UDT Field Lookups

    When viewing a multi-line field within DFDM I noticed that one of the UDF fields within the current table (AR_Customer) had a Nomads Tag that suggested I may be able to possibly manipulate a different multiline field to perform a lookup within a UDT.

  • BOI SO_SalesOrder_bus call to nSetKey(key) fails, sLastErrorMessage = "This order is currently being shipped. The invoice number is [num] in batch [num]"

    Using the BOI and trying to loop through all Sales Orders and, for each Sales Order, loop through all lines. Have it working however some orders are in a state such that, if opened from the Sage UI, a popup is shown with text like:

    In the UI, I can click…

  • Issue updating Inventory Transaction Receipt Multi-Bin Distribution using BOI

    When attempting to create line items for a Inventory Transaction Receipt batch I'm having issues when I attempt to update the distribution.  my code was working on Sage 2018 but they are upgrading to Sage 2021 and it now throws an


  • How do I remove an unposted invoice for error handling using BOI.

    I want to improve error handling in a script I have.  How do I remove a unposted invoice using BOI.  I couldn't seem to get the Delete function to work.

  • AP Invoice Batch Posting Issue


    We are running into an interesting phenomenon. A BOI script creates AP and PO invoices in multiple companies, and then posts the AP and PO batches company by company. A lot of times that works just fine. Every now and then the invoices and…

  • BOI Create Completion Transaction for Work Ticket

    I'm trying to use Business Objects to create a completion transaction for a Work Ticket in Sage 100 2022.  I can't seem to figure out how to add the work ticket to the actual transaction.  Below is a slimmed down version at its simplest form of…

  • BOI Update Receipt of Goods Register Sage 100 Premium 2022 BOI

    Hi All,

    I am having an issue running PO_ReceiptRegister_upd. I am trying to run the Receipt of Goods Register from BOI.

    oSS.InvokeMethod("nSetDate", "P/O", date);
    oSS.InvokeMethod("nSetModule", "P/O");
    //DispatchObject security = new DispatchObject…

  • 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…

  • 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…