【发布时间】:2018-09-21 14:36:37
【问题描述】:
我正在尝试在 UIPath 中执行自定义 asyncCodeActivity。添加了包,传递了所有数据,但是 UIPath 只是在到达自定义活动时挂起并且不会抛出任何异常/或停止。我尝试使用 CodeActivity 和 AsyncCodeActivity 创建类库 - 我的活动应该进行几个 APICalls 但我得到的结果它只是在它到达我的自定义活动时停止并且不会转到下一个。是否有任何示例如何为 UIPath 创建异步自定义活动?当我尝试在 UIpath 之外对其进行测试时,我的类库工作正常。将不胜感激。
我使用 CodeActivity 的类库:
public class AddInvoice : CodeActivity
{
[Category("Input")]
[RequiredArgument]
public InArgument<string> PickupZip { get; set; }
[Category("Output")]
[RequiredArgument]
public OutArgument<String> Output { get; set; }
public async Task<string> ApiTest(CodeActivityContext context)
{
try
{
var origin = await GoogleAPIWrapper.GetAddressByZip(PickupZip.Get(context));
string PickupAddress;
string DeliveryAddress;
var inv = new IList();
if (origin.StatusId >= 0)
{
invoice.PickupCity = origin.Locality;
invoice.PickupState = origin.AdminLevel1;
}
else
{
invoice.PickupCity = null;
invoice.PickupState = null;
}
var tkn = token.Get(context);
var client = new HttpClient();
HttpClientHandler handler = new HttpClientHandler();
client = new HttpClient(handler, false);
client.BaseAddress = new Uri("http://test.test.com/");
client.DefaultRequestHeaders.Add("Authorization", "Bearer " + tkn);
StringContent content = new StringContent(JsonConvert.SerializeObject(inv), Encoding.UTF8, "application/json");
var response = await client.PostAsync("api/insert/", content);
var resultContent = response.StatusCode;
Output.Set(context, resultContent.ToString());
}
catch (Exception e)
{
Output.Set(context, e.ToString());
}
return "ok";
}
protected override void Execute(CodeActivityContext context)
{
try
{
string result = ApiTest(context).GetAwaiter().GetResult();
}
catch (Exception e)
{
Output.Set(context, e.ToString());
}
}
public class IList
{
public string PickupState { get; set; }
public string PickupCity { get; set; }
}
}
【问题讨论】:
标签: uipath