Ana içeriğe geç

Betik Modülleri

Mantığın birden fazla formda, prework/postwork betikte veya harici çağıranlarda yeniden kullanılması gerektiğinde betik modüllerini kullanın.

Betik modülleri, süreç tanımları için yeniden kullanılabilir JavaScript kitaplıkları sağlar. Ortak işlevleri kapsüller ve form ile iş akışı betiklerinin daha küçük ve bakımı daha kolay olmasına yardımcı olur.

Modül Kapsamı ve Paylaşımı

Varsayılan olarak bir betik modülüne yalnızca onu tanımlayan süreç tanımı içinden erişilebilir. Ancak modüller, diğer süreçlere aktarılmak üzere yayımlanabilir.

Modül Sürümleri ve Güncellemeler

Bir betik modülünü içe aktarırken içeriği süreç tanımınıza kopyalanır. İçe aktarılan betikte doğrudan değişiklik yapılmasına izin verilmez.

Kaynak süreç tanımı (özgün betik modülünü içeren tanım) güncellenirse, içe aktarma yapan tüm süreçler dağıtım sırasında güncellenmiş modül içeriğini otomatik olarak alır.

Betik Modüllerinin Dağıtımı

Betik modülleri süreç tanımıyla birlikte otomatik olarak dağıtılır; ayrı bir dağıtım gerekmez.

Modül İşlevlerini Çağırma

Şu adla bir modül olduğunu varsayalım: MyModule:

1
2
3
exports.sum = function sum(a, b) {
    return a + b;
};

Sunucu Tarafı İşlev Çağrıları

Sunucu tarafındaki (pre/post-work betikleri) işlevleri doğrudan çağırır:

1
var val = MyModule.sum(1, 2);

İstemci Tarafı İşlev Çağrıları

İstemci tarafındaki (tarayıcı tabanlı) betikler, şu son eki taşıyan işlev adlarını kullanarak eşzamansız çağrılar yapmalıdır: Async-sonekli işlev adları:

1
var val = await MyModule.sumAsync(1, 2);

Eşzamansız yapıyı async/await sözdizimi yönetir; sunucu tarafındaki sum işlevi istemcide otomatik olarak şu adla kullanıma sunulur: sumAsync .

REST Hizmeti Çağrıları

Betik modülleri REST hizmetleri olarak da sunulur ve harici sistem erişimi sağlar. REST üzerinden çağrıldığında standart değişkenlere ek olarak şu değişkenler kullanılabilir:

  • $ActiveUser: Kimliği doğrulanmış kullanıcının kimliği.
  • $GrantedScopes: Verilen API kapsamlarının virgülle ayrılmış dizgesi.
  • $Headers: HTTP istek üstbilgilerini temsil eden bir nesne.
  • $Cookies: HTTP istek çerezlerini temsil eden bir nesne.

Örnek REST Çağrısı:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
POST /rest/v1/executeModule HTTP/1.1
Host: mydomain.emakin.com
Authorization: Bearer F8C......8B
X-My-Header: MyValue
Cookie: MyCookie=1; MyOtherCookie=2

{
     "apiKey": "49......72",
     "logonId": "[email protected]",
     "logonProvider": "Organization",
     "process": "c6acc319-76cd-4265-abc1-d4ee2698dfbd",
     "module": "Module",
     "function": "myFunction",
     "arguments": []
}

Üstbilgi Authorization REST kimlik doğrulamasıyla alınan bir bearer token kullanır.

Modül işlevinde $Headers ve $Cookies nesneler olarak doldurulur:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
$Headers = {
    "host": ["mydomain.emakin.com"],
    "x-my-header": ["MyValue"],
    "remote_addr": ["67.3.2.1"],
    "remote_port": ["80"]
};

$Cookies = {
    "mycookie": "1",
    "myothercookie": "2"
};