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