Príklad 15 - Vytvorenie požiadavky na výrobu, generovanie noriem, vytvorenie výrobného príkazu

Nasledujúci príklad popisuje prácu s objektom Požiadavky na výrobu. Najskôr vykoná jeho založenie, následne vykoná generovanie noriem z kmeňových agend a nakoniec z novo vzniknutej požiadavky vytvorí Výrobný príkaz. Miesta, kde je nutné pri prípadnom použití tohto príkladu dosadiť vlastné OID, sú v texte označené znakom "%". Použitá syntax zodpovedá prostrediu Visual Basic.

Sub ProduceRequest()
    Set mApplication = CreateObject("AbraOLE.Application")
   
    ' Vytvorenie Požiadavky na výrobu
    Set RequestObject = mApplication.CreateObject("@PLMProduceRequest")
    Set RequestData = mApplication.CreateValues("@PLMProduceRequest")
    RequestObject.PrefillValues RequestData
    With RequestData
        .ValueByName("StoreCard_ID") = %ID skladové karty výrobku%
        .ValueByName("Store_ID") = %ID skladu pro příjem výrobku%
        .ValueByName("Quantity") = 1
        .ValueByName("Qunit") = "ks"
        .ValueByName("UnitRate") = 1
        .ValueByName("DocQueue_ID") = %ID řady Požadavků na výrobu%
        .ValueByName("Division_ID") = %ID střediska%
        .ValueByName("BusOrder_ID") = %ID zákazky%
    End With
    RequestID = RequestObject.CreateNewFromValues(RequestData)
    
    ' Generovanie kusovníkov a technologických postupov z kmeňových agend
    Dim RequestWarningResult As String
    Dim RequestErrorResult As String
    Call RequestObject.generate(RequestID, RequestWarningResult, RequestErrorResult)
    
    ' Vytvorenie výrobného príkazu na základe skôr vytvorenej požiadavky na výrobu
    
    ' Najprv vykonáme vyhľadanie potrebných parametrov pre vytvorenie VYP z agendy Parametre radov Požiadaviek na výrobu a Parametre radov Výrobných príkazov.
    Set RequestData = RequestObject.GetValues(RequestID)
    PQ_Queue_ID = RequestData.ValueByName("DocQueue_ID")
    Set Params_Query = mApplication.CreateCustomCommand("4VK0DOJG11KOPIHHC5SGMVDAFC")
    Params_Query.RowsetByName("Main").UsedFields = "DocQueueForJO_ID" + vbCrLf + "TariffForJO_ID"
    Set mCond = Params_Query.ConstraintByID("DocQueue_ID")
    mCond.usedkind = 1
    mCond.Value = "'" + PQ_Queue_ID + "'"
    Params_Query.Execute
    Set mRowset = Params_Query.RowsetByName("Main")
    If Not mRowset.EOF Then
        JO_Params_DocQueueForJO_ID = mRowset.Data.Item(0)
        JO_Params_TariffForJO_ID = mRowset.Data.Item(1)
        
        ' Dohľadanie potrebných údajov pre vytvorenie VYP z agendy Parametre Výrobných príkazov
        Set Params_Query = mApplication.CreateCustomCommand("TXTQXNVN1554J45VQ1Y3NXJTES")
        Params_Query.RowsetByName("Main").UsedFields = "DocQueueForAWT_ID" + vbCrLf + "AccPresetDef_ID"
        Set mCond = Params_Query.ConstraintByID("DocQueue_ID")
        mCond.usedkind = 1
        mCond.Value = "'" + mRowset.Data.Item(0) + "'"
        Params_Query.Execute
        Set mRowset = Params_Query.RowsetByName("Main")
        If Not mRowset.EOF Then
            JO_Params_DocQueueForAWT_ID = mRowset.Data.Item(0)
            JO_Params_AccPresetDef_ID = mRowset.Data.Item(1)
            
            ' Samotné vytvorenie výrobného príkazu
            Call RequestObject.GenerateJobOrder(RequestID, JO_Params_DocQueueForJO_ID, _
                RequestData.ValueByName("Period_ID"), JO_Params_TariffForJO_ID, _
                JO_Params_DocQueueForAWT_ID, JO_Params_AccPresetDef_ID, RequestWarningResult, RequestErrorResult)
        End If
    End If
    
    ' Zobrazenie vytvorenej Požiadavky na výrobu vo vlastnej agende
    Set SelectNxStr = CreateObject("AbraOLE.NxStrings")
    SelectNxStr.Add (RequestID)
    Set mAgenda = mApplication.GetAgenda("ONWLBO0DUPX4B400AJEI4YETD4")
    Call mAgenda.ShowSelected(SelectNxStr, "Nový Požadavek na výrobu vytvořený pomocí OLE rozhraní")
End Sub