این راهنما جهت دسترسی به سرویس های عمومی سیستم مدیریت فرآیندهای کسب و کار گراف تهیه شده است. این سرویس ها شامل:
1.ورود به سیستم و دریافت Token .
2.آغاز یک فاریند .
3.ادامه یک فرایند .
4.تهیه خروجی از گزارشات .
5.ارسال فایل به صورت Base64
هستند و از طریق ابزارهای ثانویه یا سایر برنامه های کاربری تحت سیستم عامل یا تحت وب قابل دسترسی و استفاده هستند.
**نکته مهم :** برای اجرای هر یک از موارد فوق حتما" باید از طریق رابط Login نسبت به دریافت Token اقدام نمایید.
---
**لیست سرویس های ارائه شده :**
1.Login: جهت دریافت Token معتبر بر پایه کاربری اعلام شده که خروجی آن توکنی می باشد که می بایست در هدر تمامی درخواست دیگر مانند آغاز فرایند، ادامه فرایند و..... مورد استفاده قرار گیرد. (به فایل راهنمای مبتنی بر PostMan مراجعه شود)
2.RunProces : در صورت نیاز به اجرای فرآیند از طریق یک ابزار ثانویه از این سرویس استفاده کنید.
3.ContinueProcessWithMessage: در صورتی که فرآیندی در یک مرحله مشخص متوقف شده باشد از طریق این سرویس می توانید نسبت به ادامه فرآیند اقدام نمایید.
4.ThrowProcessSignal : در صورتی که نیاز دارید سیگنال مد نظر خود را فراخوانی کنید تا با توجه به کلید آن تمامی سیگنال های catch در شروع فرآیند، نمونه سازی و شروع شوند و سیگنال های catch در انتظار میانی ادامه پیدا کنند، می توانید از این سرویس استفاده کنید.
5.SendFile: از این سرویس جهت ارسال فایل می توانید استفاده کنید. فایل ها در بخش آرشیو ذخیره می شوند.
6.GenerateStimulExportFile: این سرویس امکان دریافت خروجی یک گزارش از قبل طراحی شده دارای قالب چاپ به فرمتهای pdf, jpg, csv را دراختیار شما قرار می دهد.
آدرس سرویس: https://UrlAddress/SharedApi/login
قبل از ارسال هرگونه درخواستی به سرویس های داخلی گراف ابتدا باید وارد سیستم شوید. این سرویس امکان لاگین و دریافت Token را فراهم می آورد.
**مقادیر ورودی:**
|توضیحات|Position|Allow Null|Parameter Type|Parameter Name|
|-|-|-|-|-|
|نام کاربری که در سامانه فعال است.|Body|False|String|username|
|کلمه عبور|Body|False|String|password|
|مقدار پیش فرض این ورودی false است، در صورتی که کاربران سامانه از طریق ldap به سیستم وارد می شوند این مقدار باید true باشد.|Body|False|Boolean|networkUser|
**مقادیر خروجی:**
|توضیحات|Nullable|Result property type|Result property name|
|-|-|-|-|
|Token اصلی که باید در ارسال درخواست های بعد از ورود به سیستم ارسال شود.|True|String|PrivateToken|
|می تواند ارسال نشود.|True|String|PublicToken|
|در صورتی که عملیات ورود با خطا مواجه شود مقدار این خروجی true می شود.|True|String|PublicToken|
|نتیجه موفقیت یا عدم موفقیت عملیات ورود در این خروجی قرار می گیرد.|False|String|Message|
**نکته 1:** مقادیر خروجی فوق در قالب یک Json Object استاندارد بازگشت داده می شود.
**نکته 2:** جهت ادامه سایر سرویس ها فقط از Private token استفاده نمایید
**نکته 3:** براساس تنظیمات سیستم Private token دارای اعتبار زمانی است.
جهت مشاهده مستندات استفاده از سرویس های عمومی گراف بر روی لینک زیر کلیک کنید
مستندات سرویس های عمومی گراف
آدرس سرویس: https://UrlAddress/SharedApi/RunProcess
**مقادیر ورودی:**
|توضیحات|Position|Allow null|Parameter type|Parameter name|
|-|-|-|-|-|
|توکن احراز هویت|Header|False|String|privateToken|
|به صورت raw ارسال شود.|Body|False|
Object = {
ProcessGroup?: number,
Process?: number,
RoleID: number,
UserID: number,
RunType: number,
Variables?:
[{name: string, value: string}],
ProcessTitle?: string}
|model|
**به معنی allow null است .**
**نکته 1:** به طور همزمان نباید مقدار ProcessGroup یا Process را ارسال کرد.
**نکته 2:** در صورتی که مقدار ProcessGroup ارسال شده باشد آخرین نگارش فعال آن گروه فرآیندی مورد استفاده قرار میگیرد.
**نکته 3:** در صورتی که مقدار Process ارسال شده باشد، فرآیند متناظر شناسه ارسالی حتما" باید فعال باشد در غیر این صورت فرآیند اجرا نمی شود.
**نکته 4:** شناسه نقش مجاز شروع کننده فرآیند باید صحیح باشد و اجباری است.
**نکته 5:** شناسه کاربر مجاز شروع کننده فرآیند باید صحیح باشد و اجباری است.
**نکته 6:** مقدار پیش فرض RunType باید 500002 باشد در غیر این صورت فرآیند اجرا نمی شود.
**نکته 7:** متغیرهای ارسالی باید از قبل در فرآیند تعریف شده باشند، در زمان ارسال متغیر نیازی به استفاده از @@ نیست و مقدار value باید به صورت یک مقدار خام عددی یا رشته ای یا Json array, Json object باشد.
**نکته 8:** صورتی که قصد ارسال مقداری به صورت رشته ای و عددی در قالب متغیر ها دارید بایستی به صورت زیر ارسال کنید
```yaml
[
{
"name": "Var1",
"value":"StingValue"
}
,
{
"name": "Var2",
"value": 100
}
]
```
**نمونه روش مقدار دهی Variables های پیچیده:**
```yaml
[
{
"name": "Var1",
"value": "[
{ \"firstname\": \"john\", \"lastname\": \"doe\"}
]"
}
]
```
**نکته 9:** در صورتی که نیاز به تغییر عنوان فرآیند در حین اجرای آن دارید از ProcessTitle استفاده کنید و در صورتی که مقداری ارسال نشود عنوان پیش فرض فرآیند در زمان طراحی مورد استفاده قرار میگیرد.
**مقادیر خروجی:**
|توضیحات|Nullable|Result property type|Result property name|
|-|-|-|-|
|نتیجه عملیات و داده های خروجی در این بخش قرار میگیرد.|True|Any|Content|
|کد خطای متناظر، در صورتی که -1 باشد عملیات به درستی انجام شده است.|True|Number|ErrorCode|
|در صورتی که عملیات ورود با خطا مواجه شود مقدار این خروجی true می شود.|True|Boolean|HasError|
|نتیجه موفقیت یا عدم موفقیت عملیات ورود در این خروجی قرار می گیرد.|True|String|Message|
|در صورت بروز خطا متن خطا در این بخش قرار میگیرد.|True|String|MessageException|
جهت مشاهده مستندات استفاده از سرویس های عمومی گراف بر روی لینک زیر کلیک کنید
مستندات سرویس های عمومی گراف ProcessGroup?: number,
Process?: number,
RoleID: number,
UserID: number,
RunType: number,
Variables?:
[{name: string, value: string}],
ProcessTitle?: string}
آدرس سرویس: https://UrlAddress/SharedApi/ContinueProcessWithMessage
در صورتی که در فرآیند طراحی شده از Message Boundary Event یا Receive Task استفاده کرده باشید، در زمان طراحی فرآیند باید دو ورودی برای فرآیند اجرا شده و مرحله مورد نظر در Provider قرار داده باشید. زمانی که فرآیند در حین اجرا/ادامه به مرحله Message Boundary Event یا Receive Task برسد متوقف خواهد شد و جهت ادامه آن از مرحله مورد نظر باید از این سرویس استفاده شود.
**مقادیر ورودی:**
|توضیحات|Position|Allow null|Parameter type|Parameter name|
|-|-|-|-|-|
|توکن احراز هویت|Header|False|String|privateToken|
|شناسه اجرایی فرآیند که متوقف شده است.|Body|False|Number|processCreationID|
|شناسه مرحله ای که فرآیند در آن مرحله متوقف شده است.|Body|False|Number|stepID|
|در صورتی که نیاز به ارسال مقادیری به فرآیند دارید از این ورودی می توانید استفاده کنید.|Body|true|Array = [{name: string, value: string}]|Variables|
**نمونه روش مقدار دهی Variables:**
```yaml
[
{
"name": "Var1",
"value": "[
{ \"firstname\": \"john\", \"lastname\": \"doe\"}
]"
}
]
```
**مقادیر خروجی:**
|توضیحات|Nullable|Result property type|Result property name|
|-|-|-|-|
|نتیجه عملیات و داده های خروجی در این بخش قرار میگیرد.|True|
Object = {
ReferenceState: number,
ReferenceStateMessage: string
}
|Content|
|کد خطای متناظر، در صورتی که -1 باشد عملیات به درستی انجام شده است.|True|Number|ErrorCode|
|در صورتی که عملیات ورود با خطا مواجه شود مقدار این خروجی true می شود.|False|Boolean|HasError|
|نتیجه موفقیت یا عدم موفقیت عملیات ورود در این خروجی قرار می گیرد.|True|String|Message|
|در صورت بروز خطا متن خطا در این بخش قرار میگیرد.|True|String|MessageException|
**نکته 1:** خروجی ReferenceState یکی از گزینه های زیر است:
1- IsFired = 500090 فرآیند قبلا ادامه یافته است و امکان ادامه آن براساس اطلاعات ارسالی وجود ندارد.
2- IsNotExist = 500091 فرآیندی جهت ادامه براساس اطلاعات ارسالی وجود ندارد.
3- IsNotFired = 500092 (مخفی شده است، قابل استفاده نیست)
4- IsExceptionMode = 500093 خطایی در ادامه فرآیند رخ داده است. متن خطا در بخش Message Exception درج شده است.
5- IsFiredSuccessfully = 500094 فرآیند براساس اطلاعات ارسالی با موفقیت ادامه یافت.
جهت مشاهده مستندات استفاده از سرویس های عمومی گراف بر روی لینک زیر کلیک کنید
مستندات سرویس های عمومی گراف ReferenceState: number,
ReferenceStateMessage: string
}
آدرس سرویس: https://UrlAddress/SharedApi/ThrowProcessSignal
در صورتی که نیاز دارید سیگنال مد نظر خود را فراخوانی کنید تا با توجه به کلید آن تمامی سیگنال های catch در شروع فرآیند، نمونه سازی و شروع شوند و سیگنال های catch در انتظار میانی ادامه پیدا کنند، می توانید از این سرویس استفاده کنید.
نکته: در نظر داشته باشید که فراخوانی این سرویس عینا همانند یک نود سیگنال از جنس throw در فرآیند می باشد.
|توضیحات|Position|Allow null|Allow null|Parameter name|
|-|-|-|-|-|
|توکن احراز هویت|Header|False|String|privateToken|
|کلید سیگنال|Body|False|String|SignalKey|
|در صورتی که نیاز به ارسال مقادیری به فرآیند دارید از این ورودی می توانید استفاده کنید|Body|True|Array=[{name:string , value:string}]|Variebale|
نمونه بدنه ارسالی :
```js
{
"SignalKey": "SignalA",
"Variables": [
{
"Name": "variableNumber1",
"Value": "someValueForVariableNumber1"
}
]
}
```
مقادیر خروجی :
|توضیحات|Nullable|Result property type|Result property name|
|-|-|-|-|
|نتیجه عملیات و داده های خروجی در این بخش قرار می گیرد|True|
Array of objects = [{
ProcessCreationID: number,
StatusDescription: string,
EndVariables: [
{
Name: string,
Value: string
}]}]
|Content|
|کد خطای متناظر، در صورتی که -1 باشد عملیات به درستی انجام شده است.|True|Number|ErrorCode|
|در صورتی که عملیات ورود با خطا مواجه شود مقدار این خروجی true می شود.|False|Boolean|HasError|
|نتیجه موفقیت یا عدم موفقیت عملیات ورود در این خروجی قرار می گیرد.|True|String|Message|
|در صورت بروز خطا متن خطا در این بخش قرار میگیرد.|True|String|MessageException|
نکته: به ازای هر نمونه فرآیندی که سیگنالی در آن فراخوانی شده است یک رکورد از نتیجه آن فراخوانی در خروجی این سرویس داده میشود که شامل فیلد StatusDescription، EndVariables و ProcessCreationID است که فیلد StatusDescription اعلام کنند وضعیت انجام عملیات است و فیلد EndVariables شامل متغییر های خروجی فرآیند است و تنها در صورتی دارای مقداری جز آرایه خالی می باشد که فرآیند، در ادامه این فراخوانی سیگنال به یک نود اتمام برسد که در آن متغییری خروجی داده شده باشد، فیلد EndVariables دقیقا همان متغییر های خروجی فرآیند هستند. فیلد ProcessCreationID مشخص کننده شناسه نمونه فرآیندی است که سیگنال آن فراخوانی شده است.
جهت مشاهده مستندات استفاده از سرویس های عمومی گراف بر روی لینک زیر کلیک کنید
مستندات سرویس های عمومی گراف ProcessCreationID: number,
StatusDescription: string,
EndVariables: [
{
Name: string,
Value: string
}]}]
آدرس سرویس: https://UrlAddress/SharedApi/SendFile
از این سرویس جهت ارسال فایل در سیستم آرشیو سامانه گراف استفاده می شود. دقت نمایید که جزئیات فایل بررسی می گردد. فایل باید به فرمت base64 به این سرویس ارسال گردد.
**مقادیر ورودی:**
|توضیحات|Position|Allow null|Allow null|Parameter name|
|-|-|-|-|-|
|توکن احراز هویت|Header|False|String|privateToken|
|فایل به فرمت base64|Body|False|String|fileContent|
|نام فایل به همراه نوع فایل مانند profile.jpg|Body|False|String|filename|
**مقادیر خروجی:**
|توضیحات|Nullable|Result property type|Result property name|
|-|-|-|-|
|شناسه فایل در آرشیو|True|String|Result|
جهت مشاهده مستندات استفاده از سرویس های عمومی گراف بر روی لینک زیر کلیک کنید
مستندات سرویس های عمومی گراف
آدرس سرویس: https://UrlAddress/SharedApi/GenerateStimulExportFile
در صورتی که نیاز به دریافت خروجی قالب چاپ طراحی شده با یکی از فرمتهای pdf, jpg, csv, html دارید از این سرویس استفاده نمایید.
**مقادیر ورودی:**
|توضیحات|Position|Allow null|Parameter type|Parameter name|
|-|-|-|-|-|
|توکن احراز هویت|Header|False|False|privateToken|
|چاپ|Body|False|Number|exportId|
|شناسه جدول ReportRecourse منبع داده به همراه آرایه ای مقادیر ورودی|Body|False|Array = [{ResourceId: number,Parameters: [{name: string, value: string}]}]|paramList|
|در صورتی که مقداری ارسال نشود خروجی به صورت pdf است. مقادیر ورودی می تواند یکی از فرمت های:Pdf, html, csv, jpg باشد|Body|True|String|fileExportType|
**مقادیر خروجی:**
|توضیحات|Nullable|Result property type|Result property name|
|-|-|-|-|
|فایل تولید شده با فرمت درخواستی به صورت base64|True|String|Content|
|کد خطای متناظر، در صورتی که -1 باشد عملیات به درستی انجام شده است.|True|Number|ErrorCode|
|در صورتی که عملیات ورود با خطا مواجه شود مقدار این خروجی true می شود.|False|Boolean|HasError|
|نتیجه موفقیت یا عدم موفقیت عملیات ورود در این خروجی قرار می گیرد.|True|String|Message|
|در صورت بروز خطا متن خطا در این بخش قرار میگیرد.|True|String|MessageException|
جهت مشاهده مستندات استفاده از سرویس های عمومی گراف بر روی لینک زیر کلیک کنید
مستندات سرویس های عمومی گراف
جهت مشاهده مستندات استفاده از سرویس های عمومی گراف بر روی لینک زیر کلیک کنید
مستندات سرویس های عمومی گراف