Příklad 20 - Vytvoření kooperace, odvezení, zrušení odvezení, přivezení, zrušení přivezení

Následující příklad popisuje práci s objektem Kooperace. Nejprve provede jeho vytvoření, následně provede jeho odvezení, pak zrušení odvezení, dále přivezení a zrušení přivezení. 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 Cooperation()
    Set mApplication = CreateObject("AbraOLE.Application")
   
    ' Vytvoření kooperace
    Set CooObject = mApplication.CreateObject("@PLMCooperation")
    Set CooData = mApplication.CreateValues("@PLMCooperation")
    CooObject.PrefillValues CooData
    With CooData
        .ValueByName("JobOrder_ID") = %ID výrobního příkazu%
        .ValueByName("Division_ID") = %ID střediska%
    End With
    CooID = CooObject.CreateNewFromValues(CooData)
    
    ' Odvezení, protože je zadáno 0, tak datum odvezení je rovno datu na serveru
    Set CooData = CooObject.GetValues(CooID)
    ' V případě chyby se zeptáme na poslední validační hlášení
    If Not CooObject.TakeOff(0) Then
      MsgBox (CooObject.GetLastMessage)
    End If
    CooObject.UpdateValues CooID, CooData
    
	' Zrušení odvezení
    Set CooData = CooObject.GetValues(CooID)
    ' V případě chyby se zeptáme na poslední validační hlášení
    If Not CooObject.TakeOffCancel Then
      MsgBox (CooObject.GetLastMessage)
    End If
    CooObject.UpdateValues CooID, CooData

    ' Přivezení, protože je zadáno 0, tak datum přivezení je rovno datu na serveru
    Set CooData = CooObject.GetValues(CooID)
    ' V případě chyby se zeptáme na poslední validační hlášení
    If Not CooObject.TakeIn(0) Then
      MsgBox (CooObject.GetLastMessage)
    End If
    ' Pokud bychom zavolali přivezení na neodvezenou kooperaci, dostaneme po zavolání CooObject.GetLastMessage text "Kooperace ještě nebyla odvezena"
    CooObject.UpdateValues CooID, CooData

    ' Zrušení přivezení
    Set CooData = CooObject.GetValues(CooID)
    ' V případě chyby se zeptáme na poslední validační hlášení
    If Not CooObject.TakeInCancel Then
      MsgBox (CooObject.GetLastMessage)
    End If
    ' Pokud bychom zavolali přivezení na neodvezenou kooperaci, dostaneme po zavolání CooObject.GetLastMessage text "Kooperace ještě nebyla odvezena"
    CooObject.UpdateValues CooID, CooData
End Sub