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