Public Sub ReceiptPO()

    Dim oReceipt As CAPReceipt
    Set oReceipt = New CAPReceipt
    oReceipt.Init fe_application.SessionContext
    Dim oLineItems As cAPLineItems
    Dim oLineItem As CAPLineItem
    Dim oPO As CAPPurchaseOrder
    Set oPO = New CAPPurchaseOrder
    oPO.Init fe_application.SessionContext
    '' Adjust to load a specific PO by system ID
    oPO.Load 14

    Set oLineItems = oPO.LineItems

    With oReceipt
        .Fields(APRECEIPTS_fld_RECEIVEDBY) = "FrontDesk"
        .Fields(APRECEIPTS_fld_RECEIPTDATE) = "08/09/2017"
        For Each oLineItem In oLineItems
            With .ReceiptItems.Add
                .Fields(APRECEIPTITEMS_fld_POLINENUMBER) = oLineItem.Fields(APLINEITEMS_fld_SEQUENCE)
                .Fields(APRECEIPTITEMS_fld_RECEIPTTYPE) = "Receive"
                .Fields(APRECEIPTITEMS_fld_POSTDATE) = "08/09/2017"
            End With
        Next oLI
    End With
    Set oPO = Nothing
    Set oReceipt = Nothing

End Sub

Disclaimer: We provide programming examples for illustration only, without warranty either expressed or implied, including, but not limited to, the implied warranties of merchantability and/or fitness for a particular purpose. This article assumes you are familiar with Microsoft Visual Basic and the tools used to create and debug procedures. Our Customer Support can help explain the functionality of a particular procedure, but we will not modify, or assist you with modifying, these examples to provide additional functionality. If you are interested in learning more about the VBA and API modules, contact your account manager.