SelectAssignment

Node Action:

The SelectAssignment node action selects the assignment in the backstage but doesn't open it. The assignment must be yours.

Parameters:

se_type

SelectAssignment

se_type = SelectAssignment

se_assignmentId

The assignment ID to select.

se_determineAssignmentId

A lambda to find an assignment ID.

Example:

Open Assignment: The following workflow allows you to open or select an assignment based on a design name.

digraph workflow {

entry[
  se_type0 = BackstageToolTrigger,
se_displayName0 = "Open Assignment"
se_iconService0 = ""
se_iconUrl0 = ""
se_requiresConnection0 = false,
se_sortOrder0 = 0,
se_visibilityCondition0 = "(dynamicStateMachineContext, msLogger) => {
  return true;
}",

]

GetDesignName[
se_type0 = PromptUser,
se_cardTemplate0 = "
{
    \"type\": \"AdaptiveCard\",
    \"$schema\": \"https://adaptivecards.io/schemas/adaptive-card.json\",
    \"version\": \"1.5\",
    \"body\": [
        {
            \"type\": \"Input.Text\",
            \"label\": \"Design Name\",
            \"placeholder\": \"Name\",
            \"id\": \"DesignName\"
        }
    ],
    \"actions\": [
        {
            \"type\": \"Action.Submit\",
            \"title\": \"Open\",
            \"id\": \"Open\"
        },
        {
            \"type\": \"Action.Submit\",
            \"title\": \"Select\",
            \"id\": \"Select\"
        }
    ]
}"
se_promptCaption0 = "Search Design Name"
se_resultVariable0 = DesignNameResult

]

QueryDesign[
se_type0 = Api,
  se_body0 = ""
  se_method0 = "GET"
  se_modifyRequest0 = "(request, ctx, log) => {
          Debugger.Break();
          var name = ctx.State.DesignNameResult.userInputs.DesignName;
          var search = $\"select * from c where CONTAINS(c.name, '{name}',true)\";
          var query = System.Net.WebUtility.UrlEncode(search);
          
          var uri = new Uri($\"api/v1/query?q={query}&tenantId={ctx.User.TenantId}&pageSize=50&walkAncestry=False&walkReferenceDesigns=False\", UriKind.RelativeOrAbsolute);
          request.RequestUri = uri;
        }",

se_service0 = DesignerCoordination
se_resultVariable0 = Designs
]

QueryAssignment[
se_type0 = Api,
  se_body0 = ""
  se_method0 = "GET"
  se_modifyRequest0 = "(request, ctx, log) => {
          var designId = ctx.State.Designs.designs[0].id.ToString();
          var search = $\"select * from c where c.designId = '{designId}'\";
          var query = System.Net.WebUtility.UrlEncode(search);
          
          var uri = new Uri($\"api/v1/query?q={query}&tenantId={ctx.User.TenantId}&pageSize=50&walkAncestry=False&walkReferenceDesigns=False\", UriKind.RelativeOrAbsolute);
          request.RequestUri = uri;
        }",

se_service0 = DesignerCoordination
se_resultVariable0 = Assignments
]

OpenAssignment[
se_type0 = OpenAssignment,
se_determineAssignmentId0 = "(ctx, msLogger) => {
  var id = ctx.State.Assignments.assignments[0].id.ToString();
  return id;
}",

]

SelectAssignment[
  se_type0 = SelectAssignment,
  se_assignmentId0 = ""
  se_determineAssignmentId0 = "(ctx, msLogger) => {
    return ctx.State.Assignments.assignments[0].id.ToString();
}",

]
entry->GetDesignName->QueryDesign->QueryAssignment

QueryAssignment->OpenAssignment[
    weight=1;
    constraint=false
    se_type=Condition,
    se_condition="(ctx, log) => {
      return ctx.State.DesignNameResult.submittedAction.id == \"Open\";
    }"
  ];
  
QueryAssignment->SelectAssignment[
    weight=1;
    constraint=false
    se_type=Condition,
    se_condition="(ctx, log) => {
      return ctx.State.DesignNameResult.submittedAction.id == \"Select\";
    }"
  ];

OpenAssignment->exit
SelectAssignment->exit
}
Feedback
QR Code is a registered trademark of DENSO WAVE INCORPORATED in Japan and other countries.