![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java JavaScript Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(DataFlex) Impossible Execution PlanSee more CURL ExamplesThis example demonstrates what happens when it is not possible to construct an execution plan due to missing dependencies. The target When When This example highlights that for an execution plan to be valid, every required input must either:
If neither condition is met, the system correctly detects the unresolved dependency and prevents execution. Note: This example requires Chilkat v11.5.0 or greater. For more information, see https://www.chilkatsoft.com/curl_dependency_engine.asp
Use ChilkatAx-win32.pkg Procedure Test Boolean iSuccess Handle hoHttpCurl String sTargetCurl String sFnName Variant vPlanJson Handle hoPlanJson String sTemp1 Integer iTemp1 Move False To iSuccess Move False To iSuccess Get Create (RefClass(cComChilkatHttpCurl)) To hoHttpCurl If (Not(IsComObjectCreated(hoHttpCurl))) Begin Send CreateComObject of hoHttpCurl End // This target curl command requires {{drive_id}}. Move "curl -X GET https://graph.microsoft.com/v1.0/drives/{{drive_id}}/root/children" To sTargetCurl // Define a helper function that can produce site_id. // However, it does NOT produce drive_id. Move "getSite" To sFnName Get ComAddFunction Of hoHttpCurl sFnName "curl -X GET https://graph.microsoft.com/v1.0/sites/root:/sites/{{site_name}}" To iSuccess Get ComAddOutput Of hoHttpCurl sFnName "id" "site_id" To iSuccess // Provide site_name, so getSite can run. Send ComSetVar To hoHttpCurl "site_name" "test" // Try to examine the execution plan. // This fails because {{drive_id}} is required by the target curl command, // but drive_id is not already known and no defined function produces it. Get Create (RefClass(cComChilkatJsonObject)) To hoPlanJson If (Not(IsComObjectCreated(hoPlanJson))) Begin Send CreateComObject of hoPlanJson End Set ComEmitCompact Of hoPlanJson To False Get pvComObject of hoPlanJson to vPlanJson Get ComExaminePlan Of hoHttpCurl sTargetCurl vPlanJson To iSuccess If (iSuccess = False) Begin // Should equal 5. Get ComFailReason Of hoHttpCurl To iTemp1 Showln "ExaminePlan fail reason = " iTemp1 // Examine the error(s) returned in planJson Get ComEmit Of hoPlanJson To sTemp1 Showln sTemp1 // Expected output: // { // "errors": [{ // "variable": "drive_id", // "msg": "No candidate functions" // }] // } End // DoYourThing will fail for the same reason. Get ComDoYourThing Of hoHttpCurl sTargetCurl To iSuccess // We expect DoYourThing to fail because it is not possible to construct // a valid execution plan (drive_id cannot be resolved). If (iSuccess = False) Begin // FailReason provides a numeric code indicating why the operation failed. // A value of 5 specifically means that an execution plan could not be created // due to unresolved dependencies (i.e., a required variable has no source). Get ComFailReason Of hoHttpCurl To iTemp1 Showln "DoYourThing fail reason = " iTemp1 End Else Begin // If execution succeeds, it means the plan was somehow resolved, // which would be unexpected in this scenario. Showln "Unexpected success." End End_Procedure |
||||
© 2000-2026 Chilkat Software, Inc. All Rights Reserved.