Epicor ERP: можно ли вызывать функцию Epicor в пользовательской настройке?

Epicor ERP 10.2.500 был недавно выпущен с добавлением функций Epicor. Их можно вызывать из директив метода и данных.

Кто-нибудь смог сделать это с помощью настройки формы в Epicor?

4 ответа

Это возможно с помощью вызова REST к API вашей функции. В этом случае у меня была функция, которая отправляла электронное письмо с некоторых входов.

private void epiButtonC1_Click(object sender, System.EventArgs args)
{
    //API Key is included in the query param in this example. 
    var request = (HttpWebRequest)WebRequest.Create("https://{appserver}/{EpicorInstance}/api/v2/efx/{CompanyID}/{LibraryID}/{functionName}/?api-key={yourAPIKey}");
    request.Method = "POST";
    //All REST v2 requests also sent with authentication method (Token, Basic)
    //This should be Base64 encoded
    string username = "userName";
    string password = "passWord";
    string encoded = System.Convert.ToBase64String(System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(username + ":" + password));
    request.Headers.Add("Authorization", "Basic " + encoded);

    //Add body to correspond to request signature
    request.ContentType = "application/json";
    using(var writer = new StreamWriter(request.GetRequestStream()))
     {
        var values = new Dictionary<string, string>;
          {
            {"toEmailAddress", "someEmail@email.com"},
            {"fromEmailAddress","someOtherEmail@email.com"}, 
            {"body","This is the body"},   
            {"subject","Hello from Client Code!"}
        };
    string json = JsonConvert.SerializeObject(values);
    writer.Write(json); 
    }   
    using (var response = request.GetResponse()) 
    using (var reader = new StreamReader(response.GetResponseStream()))
    {
      var result = reader.ReadToEnd();
      epiTextBoxC1.Text = result.ToString();
    }

}

Если вы создаете свою собственную DLL, которая вызывает EpicorFunction, вы можете использовать ее в настройках. Все еще ищу способ позвонить им напрямую.

Не сделал это сам лично, но, глядя на первые ноты после выпуска о ней здесь заставляет меня верить, что нет из раствора коробки, но в этой версии / первоначального выпуска.

Однако я уверен, что вы могли бы выполнить HTTP-запрос из настройки Epicor, если в вашей среде включен REST API.

Конечная точка REST — это рекомендуемый способ выполнения вызова функции, как указано a-moreng.

Если по какой-то причине вы не можете использовать это, вы можете использовать сквозной метод для любого серверного BO через Адаптер настройки. Например, создайте обновляемый BAQ, который можно вызывать из настройки с помощью DynamicQueryAdapter.

  • Выберите произвольную таблицу и поле для сохранения BAQ.
  • Создайте три строковых параметра для хранения имени библиотеки функций, имени функции и списка параметров с разделителями.
  • В методе GetList создайте базовую директиву обработки.
  • Разделите список параметров с разделителями и преобразуйте их в соответствующие типы данных.
  • Используйте полученные переменные для вызова вашей функции.
  • При желании вы можете передать возвращаемые переменные в ttResults BAQ.
Другие вопросы по тегам