Ana içeriğe geç

Komut Modülleri

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

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

Modül Kapsamı ve Paylaşımı

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

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

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

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

Komut Modüllerinin Dağıtımı

Komut 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 adlı bir modülü ele alalı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 komut dizileri) 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ı) komut dizileri, şu soneki taşıyan işlev adlarıyla eşzamansız çağrılar gerektirir: Async-sonekiyle biten

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

Bu async/await sözdizimi eşzamansız yapıyı ele alır; sunucu tarafındaki sum işlev istemci tarafında otomatik olarak şu adla kullanıma sunulur: sumAsync .

REST Hizmeti Çağrıları

Komut modülleri REST hizmetleri olarak da kullanıma sunulur ve harici sistemlerin erişimini sağlar. REST üzerinden çağrıldığında standart değişkenlere ek olarak aşağıdaki 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.

REST Çağrısı Örneği:

 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şlevi içinde, $Headers ve $Cookies nesneler olarak doldurulurdu:

 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"
};