Příklad 15 - Vytvoření požadavku na výrobu, generování norem, vytvoření výrobního příkazu

Následující příklad popisuje práci s objektem Požadavku na výrobu. Nejprve provede jeho založení, následně provede generování norem z kmenových agend a nakonec z nově vzniklého požadavku vytvoří Výrobní příkaz. Místa, kde je nutné při případném použití tohoto příkladu dosadit vlastní OID, jsou v textu označeny znakem "%". Použitá syntaxe odpovídá prostředí Visual Basic.

Sub ProduceRequest()
    Set mApplication = CreateObject("AbraOLE.Application")
   
    ' Vytvoření Požadavku 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 zakázky%
    End With
    RequestID = RequestObject.CreateNewFromValues(RequestData)
    
    ' Generování kusovníků a technologických postupů z kmenových agend
    Dim RequestWarningResult As String
    Dim RequestErrorResult As String
    Call RequestObject.generate(RequestID, RequestWarningResult, RequestErrorResult)
    
    ' Vytvoření výrobního příkazu na základě dříve vytvořeného požadavku na výrobu
    
    ' Nejprve provedeme dohledání potřebných parametrů pro vytvoření VYP z agendy Parametry řad Požadavku na výrobu a Parametry řad Výrobních příkazů
    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)
        
        ' Dohledání potřebných údajů pro vytvoření VYP z agendy Parametry Výrobních příkazů
        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é vytvoření výrobního pří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
    
    ' Zobrazení vytvořeného Požadavku na výrobu ve vlastní agendě
    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