دسته بندی: توسعه فرم و فرآیند شیرپوینت

نصب و یکپارچه سازی نینتکس Nintex با شیرپوینت

 در دنیای فناوری اطلاعات، Nintex را می توان یک شریک برای شیرپوینت دانست.

شما می توانید با پر کردن فرم زیر در سایت نینتکس درخواست  نسخه آزمایشی کنید.

بعد از پر کردن فرم، مجوز آزمایشی را در ایمیل ثبت شده خود دریافت خواهید کرد.

اعتبار نسخه آزمایشی 30 روز خواهد بود و بعد از این مدت، می توانید لایسنس آن را خریداری کنید. 

در این مقاله نحوه راه اندازی و ادغام Nintex Workflow 2016 با SharePoint 2016 را خواهید دید.

در این مقاله بررسی خواهیم کرد:

  • Nintex 2016 را در شیرپوینت نصب کنید
  • لایسنس نینتکس را به شیرپوینت وارد کنید
  • ایجاد و پیکربندی پایگاه داده Nintex
  • فعال سازی سطح برنامه وب Nintex
  • Nintex Workflow را در Site Collection و Site فعال کنید 
  • Nintex Workflow را آغاز کنید
 

مراحل نصب  Nintex در شیرپوینت

بعد از اتمام دانلود، روی فایل اجرایی کلیک کنید.

 

 

بعد از اجرا، روی گزینه Next کلیک کنید.

 

 

فرم توافق برنامه را پذیرفته و به مرحله بعد بروید؛

 

 

اگر در حال نصب روی یک سرور یا چند Farm هستید، مطمئن شوید زمان نصب، تمامی Farm ها در وضعیت فعال باشند.

برای نصب روی گزینه ‘Automatically install’ کلیک کنید.

 

محصولات را برای نصب انتخاب کنید و روی Next کلیک کنید.

 

 

 نصب برنامه آغاز می‌شود؛

 

 
بعد از اتمام نصب، تمامی سرورهای web front-end IIS برای به روز رسانی تغییرات مجدداً راه اندازی می شوند.
بنابراین، پیام موفق بودن نصب را در پنجره ی نصب مشاهده خواهید کرد.
در تصویر زیر،  برنامه  را در یک Farm چند سرور نصب کرده و پیام موفق بودن نصب مثل شکل زیر است. همانطور که مشاهده می کنید سرویس نینتکس را در تمامی سرورهای فرانت اند نصب کرده است.

اگر به “Solutions Management” در Central Administration برویم، می توانیم فایل های Nintex Solutions مستقر شده را ببینیم. ویژگی های سازمانی یا Enterprise در  Nintex Workflow 2016 به طور پیش فرض نصب نشده اند. با کلیک بر روی فایل Solution، می توانید آن ها را به صورت دستی اجرا کنید.

وارد کردن لایسنس Nintex به SharePoint 

مرحله بعد وارد کردن لایسنس نینتکس است. از Central Administration به Nintex Administration بروید.

بر روی گزینه “Licensing” کلیک کنید؛

روی گزینه ی “Import license file” کلیک کنید

فایل لایسنس را در مسیر فایلهای سیستم خود انتخاب کنید.

بعد از اعمال، جزئیات لایسنس در صفحه نمایش داده می شود. از آنجایی که مجوز فقط برای workflow اعمال شده است، فرم Nintex همچنان بدون لایسنس باقی می ماند که می توانید برای آن مجوز جداگانه درخواست کنید.

ایجاد و پیکربندی Nintex Configuration Database
 
اکنون، ما باید یک Configuration Database برای Nintex جهت ذخیره تنظیمات، و ما بقی جزئیات workflow ایجاد کنیم.
این پایگاه داده می تواند به عنوان پایگاه داده واحد و  مورد نیاز برای Nintex عمل کند. با این حال، برای اطمینان از در دسترس بودن همیشگی، توصیه می شود پایگاه داده های متعددی  ایجاد کنید.
 

 

روی “Add Nintex Workflow configuration database” کلیک کنید.در صفحه ی باز شده می توانیم اطلاعات ایجاد پایگاه داده را اضافه کنیم.

برای پایگاه داده یک نام مشخص کنید و سپس روی گزینه OK کلیک کنید.
با این کار یک configuration database  برای Nintex Workflow ایجاد می شود.
درنتیجه، پایگاه داده نینتکس تازه ایجاد شده در صفحه مدیریت ظاهر می شود. حالا سرغ بررسی SQL Server  می رویم.
 
 
پایگاه داده نینتکس در SQL Server به همراه سایر پایگاه های داده شیرپوینت ایجاد شده .
اکنون، ما باید پایگاه داده  Nintex workflow را با هر یک از پایگاه داده های محتوای برنامه های وب SharePoint نگاشت کنیم. برای انجام این کار، در صفحه مدیریت پایگاه داده، روی “Manage content database mapping” کلیک کنید.
 
صفحه‌ای باز می‌شود که در آن می‌توانیم بین پایگاه داده Nintex workflow و پایگاه داده محتوای شیرپوینت نگاشت یا map کنیم.
 
 
برای شروع کار با Nintex Workflows، اکنون باید آن را برای برنامه وب خاص از Nintex administration فعال کنید.
 
 
 
 
 
فعالسازی سطح Web Application  در  Nintex

می توانید برنامه وبی را که می خواهیم ویژگی Nintex Workflow را در آن فعال کنیم، مشخص کنید. اگر کادر “All content web applications” را انتخاب کنیم، در همه برنامه های وب فعال می شود.

 روی دکمه Activate کلیک کنید، وفوراً Nintex را در برنامه وب فعال می کند.
Nintex را در SiteCollection و Site فعال کنید

برای شروع استفاده از Nintex Workflow، باید ویژگی مجموعه سایت “Nintex Workflow 2016” را با رفتن به صفحه ویژگی های مجموعه سایت فعال کنیم.

هنگامی که ویژگی مجموعه سایت را فعال کردیم، باید ویژگی سایت “Nintex Workflow 2016” را از صفحه ویژگی های سایت فعال کنیم.

با این کار تمام تنظیمات لازم برای شروع کار با Nintex در سرور شیرپوینت تکمیل خواهد شد.

شروع به کار با  Nintex Workflow

اکنون به list/library بروید. در تب library، می‌توانیم گزینه Nintex workflow را در تنظیمات workflow پیدا کنید.

برای شروع کار با Nintex Workflow 2016، روی «Create a workflow in Nintex workflow» کلیک کنید.

بنابراین، Nintex workflow designer جایی را باز می کند که می توانید workflow را جهت ایجاد، در محیط آن drag and drop کنید تا بسته به نیازهای تجاری یک workflow کامل ایجاد کنید.

پیاده سازی Tile View در شیرپوینت SharePoint

 
 
در شیرپوینت، زمانی که یک سایت جدید ایجاد کنیم، Tileهایی که به خوبی چیده شده‌اند  در صفحه اصلی سایت مشاهده می‌شوند
شیرپوینت یک قالب لیست جدید به نام Promoted Link را ارائه کرده است. با استفاده از این قالب می توان بعضی از لینک های مهم را به صفحه اصلی سایت ارتقا داد. در زیر می‌توانید نمای پیش‌فرض Tile را در سایت جدید شیرپوینت مشاهده کنید.
 
 
 

 

پیاده سازی Tiles View فوق یک فرآیند دو مرحله ای است:

  • یک لیست  promoted Links ایجاد کنید.
  • بخش وب لیست promoted Links را به صفحه شیرپوینت اضافه کنید.
 
 

قدم اول:

برنامه promoted Links را اضافه کنید.

 

 

از منوی تنظیمات نوار بالا بر روی add an app کلیک کرده و Promoted Links را انتخاب کنید.

 

 

یک نام برای برنامه Promoted Links مشخص کنید.

 

 

برنامه جدید در محتوای سایت نمایش داده خواهد شد.

 

با کلیک بر روی app ، صفحه زیر  نشان داده میشود؛ که در حال حاضر خالی است، اجازه دهید پیوندهایی را به برنامه اضافه کنیم

 

بر روی منوی Items کلیک کنید و گزینه New Item را از آن انتخاب کنید.

مقادیر زیر را در فرم جدید پر کنید:

Title: عنوان یا نام پیوندی  که روی تصویر tile ظاهر می شود.

Background Image Location: تصویر tile است که در صفحه نمایش داده می شود.

Description: شرح کوتاهی  که روی تصویر tile هنگامی که ماوس را روی آن می‌برید ظاهر می‌شود.

Link Location: پیوندی  که کنترل باید با کلیک بر روی تصویر، به آن حرکت کند.

Launch behavior: مشخص می‌کند که وقتی روی تصویر کلیک می‌شود، صفحه ابرپیوند جدید چگونه باید باز شود.

Order: ترتیب زمانی تصویر را در لیست tile ها نشان می دهد.

به همین ترتیب پیوندهای باقیمانده را با کلیک بر روی مورد جدید اضافه کرده. بعد از اضافه شدن همه پیوندها، اکنون لیست به شکل زیر خواهد بود:

حالا بیایید بخش وب را به صفحه اصلی اضافه کنیم و ببینیم ظاهرش چگونه می شود.

قدم دوم:

بخش وب Promoted Links را به صفحه اضافه کنید.

روی آیتم منوی Page کلیک کنید و Edit را انتخاب کنید.

از Insert روی Web part کلیک کنید.

از Apps برنامه پیوندهای تبلیغاتی اخیر ایجاد شده Home Page Tile View را انتخاب کنید و Add را بزنید.

لیست Promoted link مانند تصویر زیر به عنوان نمای tile نمایش داده خواهد شد:

 
بنابراین پیوندها در قالب نمای tile جالب نشان داده می شوند.
با این حال همانطور که می بینید وقتی تعداد موارد موجود در لیست از 6 بیشتر شود یک نوار اسکرول وجود دارد که لازم است به سمت راست کشیده شود که چندان جالب نیست. این یک رفتار پیش فرض شیرپوینت است.
با این حال ما راه حل هایی برای این کار داریم که در یکی از مقاله های آینده مورد بحث قرار  میگیرد.
در این مقاله نحوه ایجاد یک لیست promoted links و نمایش آن به عنوان بخش وب برای مشاهده tile در صفحه شیرپوینت را آموزش دیدیم.
امیدوارم مطالعه این مطلب برای شما مفید باشد و ما را به دوستان خود معرفی کنید.

اسکریپت های کاربردی BPC PowerForms

BPC PowerForms Script (Properties AND methods)

یک متغیرعمومی جهانی به نام “form” در هر جایی که بتوانید از اسکریپت استفاده کنید موجود است:

– event های فرم (Load, Validation و…)
– Inside Enabled و Visibility formulas
– در control Value-Change events
– در رویدادهای سفارشی ارائه شده توسط کنترل های خاص (مانندgrids)

 

DataItem

Type : Object

اطلاعات رکورد را نشان می دهد. هر ویژگی شی نشان دهنده یک ستون لیست است.

از نام های داخلی ستون ها برای ساخت این شی استفاده شده است.

 

MaintainTabSelection

Type : Bool

در صورتی که فرم دارای بیش از یک برگه انتخابی باشد، پس از عمل ذخیره، آخرین برگه انتخاب شده در صورت تنظیم صحیح باقی می ماند.

 

Loaded

Type : Bool

این ویژگی در هنگام بارگیری فرم درست است و به محض اینکه کاربر شروع به ویرایش داده ها در فرم کند، false می شود.

زمانی مفید است که می‌خواهید مقدار کنترل‌ها را در طول رویداد Value-Change کنترل دیگری تغییر دهید.

از آنجایی که رویدادهای Value-Change حتی زمانی که فرم اولیه می شود، افزایش می یابد، ممکن است نتایج ناخواسته ای داشته باشد.

مثلا :

شما می خواهید هر بار که کاربر مشتری خاصی را از یک جعبه ترکیبی انتخاب می کند، به طور خودکار ترکیب اولویت را روی “بالا” تنظیم کند. این باید به عنوان یک مقدار پیش فرض برای آن کنترل عمل کند، اما کاربر ممکن است آن را پس از آن تغییر دهد. بنابراین ما این قانون را فقط زمانی اعمال می کنیم که مقدار ترکیب با یک اقدام کاربر تغییر کند.

مثال:

کد
// کد داخل رویداد Value-Change ترکیب مشتری

 

var customer = form.GetControl(“c_Customer”).GetValue_Name();

if (customer == “BPC”) form.GetControl(“c_Priority”).SetValue(“High”);

// کد بالا نادرست است، زیرا در هنگام اولیه سازی فرم نیز اجرا می شود

// هنگامی که فرم مقادیر مورد فهرست را به کنترل ها اعمال می کند.

// راه صحیح به صورت زیر خواهد بود:

var customer = form.GetControl(“c_Customer”).GetValue_Name();

if (form.Loaded) {

  if (customer == “BPC”) form.GetControl(“c_Priority”).SetValue(“High”);

}

 

FieldValue(controlName)

Return type : string

برای بازیابی مقدار فعلی یک کنترل در فرم استفاده می شود.

مقدار همیشه به عنوان یک رشته بازیابی می شود.

برای مقادیر تاریخ، از فرمت ANSI استفاده می شود.

برای مقادیر عددی، از محلی ایالات متحده استفاده می شود.

برای مقادیر جستجو، از قالب ID;#TITLE استفاده می شود.

برای مقادیر بولی، 1 یا 0 برگردانده می شود.

مثال :

Code

form.FieldValue(“c_Title”);

مثال فرمول فعال شده:

Code

form.FieldValue(“c_Status”) != “Open”

 

 

FieldValue_Name(controlName)

Return type : string

این روش فقط برای کنترل های جستجو استفاده می شود و قسمت TITLE از مقدار کنترل (ID;#TITLE) را برمی گرداند.

به عنوان مثال، یک کنترل جستجوی ترکیبی دارای مقدار : 2;#Open است

Code

var a = form.FieldValue(“c_Status”);

// returns “2;#Open”

var b = form.FieldValue_Name(“c_Status”);

// returns “Open”

 

 

FieldValue_Value(controlName)

Return type : string

این روش فقط برای کنترل‌های جستجو استفاده می‌شود و قسمت ID مقدار کنترل را برمی‌گرداند (ID;#TITLE)

به عنوان مثال، یک کنترل جستجوی ترکیبی دارای مقدار : 2;#Open است

Code

var a = form.FieldValue(“c_Status”);

// returns “2;#Open”

var b = form.FieldValue_Value(“c_Status”);

// returns “2”

 

FieldValues(controlName, separator)

Return type : string

این روش فقط برای کنترل های چند جستجویی استفاده می شود.

روش FieldValue(controlName) برای کنترل‌های چند جستجو، مقدار را در قالب ID1;TITLE1;#ID2;#TITLE2;#… برمی‌گرداند.

این متد تمام قسمت های ID داخل مقدار را که توسط جداکننده ارائه شده به عنوان پارامتر به هم پیوسته اند، برمی گرداند.

مثلا:

Code

var value = form.FieldValue(“c_Multi”);

// returns “1;#Open;#2;#Closed”

var value2 = form.FieldValues(“c_Multi”, “,”);

// returns “1,2”

 

FieldNames(controlName, separator)

Return type : string

این روش فقط برای کنترل های چند جستجویی استفاده می شود.

روش FieldValue(controlName) برای کنترل‌های چند جستجو، مقدار را در قالب ID1;TITLE1;#ID2;#TITLE2;#… برمی‌گرداند.

این روش تمام قسمت‌های TITLE را در داخل مقدار برمی‌گرداند که توسط جداکننده ارائه‌شده به‌عنوان پارامتر به هم متصل شده‌اند.

مثلا:

Code

var value = form.FieldValue(“c_Multi”);

// returns “1;#Open;#2;#Closed”

var value2 = form.FieldNames(“c_Multi”, “,”);

// returns “Open,Closed”

 

UserID()

Return type : string

این روش شناسه کاربر فعلی شیرپوینت را برمی گرداند.

مثال :

Code

var id = form.UserID();

 

UserFullName()

Retutn type : string

نام کاربر فعلی را برمی گرداند

مثال :

Code

var name = form.UserFullName();

 

LoginName()

Retutn type : string

نام ورود کاربر فعلی را برمی گرداند

مثال :

Code

var name = form.LoginName();

 

UserInGroup(idOrName)

Return type : bool

اگر کاربر فعلی متعلق به گروهی باشد که شناسه یا نام ارائه شده را دارد، درست است.

مثال :

Code

var granted = (form.UserInGroup(“Administrators”) || form.UserInGroup(“2”));

 

CurrentUser()

Return type : object

ساختاری حاوی اطلاعات کاربر فعلی را برمی‌گرداند.

User Properties :

ID, FullName, LoginName, Email, Groups (array of groups)

Group Properties

ID, Name

مثلا:

Code

var user = form.CurrentUser();

var userId = user.ID;

for (var i=0;i<user.Groups.length;i++) {

var group = user.Groups[i];

var groupName = group.Name;

}

 

IsNewRecord()

Return type : bool

اگر در حال حاضر در یک رکورد جدید باشیم true برمی گرداند، در غیر این صورت false دوباره تنظیم می شود.

مثال :

Code

if (form.IsNewRecord() && form.FieldValue(“c_Title”) == “”)

alert(“Title must be provided for new records”);

 

ViewMode()

Return type : bool

اگر فرم در حالت مشاهده باشد، true را برمی‌گرداند. این مهم است که به خصوص هنگام برخورد با اسکریپتی که کنترل ها را فعال می کند، بدانید.

مثال :

یک اسکریپت مانند زیر که در داخل اسکریپت LoadCompleted فرم نوشته شده است، به این نتیجه می رسد که کنترل خاص حتی زمانی که فرم در حالت ViewMode باشد فعال می شود.

Code

var status = form.DataItem.Status;

var control = form.GetControl(“c_Title”);

// Wrong

if (status == “Open”) control.SetEnable(true);

else control.SetEnable(true)

// Correct

if (form.ViewMode() == false) {

if (status == “Open”) control.SetEnable(true);

else control.SetEnable(false);

}

 

ShowMessage(message)

Return type : None

یک پیام کوتاه را در یک مکان نگهدار بین نوار ابزار و فرم نمایش می دهد.

ممکن است برای ارائه هشدارها و دستورالعمل ها به کاربر نهایی استفاده شود.

مثال :

Code

form.ShowMessage(“Password must be at least 6 characters long”);

 

MessageForm(message, title, callback)

Return type : None

یک فرم پیام پنجره بازشو به کاربر نشان می دهد.

از پارامترهای پیام و عنوان برای تنظیم متن و عنوان گفتگو استفاده می شود.

اگر یک روش پاسخ به تماس مشخص شده باشد، زمانی که کاربران فرم را ببندند، تماس برگشتی اجرا می شود.

مثال :

Code

form.MessageForm(“There has been an error saving data”, “Error”, function(e) {

form.CancelRecord();

});

 

CloseMessageForm()

Return type : None

فرم پیام بالا را بصورت برنامه نویسی می بندد.

مثال :

Code

form.CloseMessageForm();

 

ShowButton(buttonName)

Return type : None

یک دکمه نوار ابزار را نشان می دهد.

برای اینکه این روش کار کند، ابتدا کاربر باید حقوق مناسب فشار دادن آن دکمه را داشته باشد و طراح فرم باید اجازه داده باشد که این دکمه روی فرم موجود باشد.

مثال :

Code

form.ShowButton(“delete”);

Available button names (Case Insensitive) : “New”, “Save”, “SaveAndExit”, “Delete”, “Cancel”, “Edit”, “Help”, “Design”, “Print”

 

HideButton(buttonName)

Return type : None

یک دکمه را از نوار ابزار پنهان می کند.

Available button names (Case Insensitive) : “New”, “Save”, “SaveAndExit”, “Delete”, “Cancel”, “Edit”, “Help”, “Design”, “Print”

مثلا:

Code

form.HideButton(“Save”);

form.HideButton(“SaveAndExit”);

 

RequestValue(key)

Return type : string

در داخل querystring پنجره جستجو می کند تا کلیدی مطابق با پارامتر مشخص شده پیدا کند.

مقدار پارامتر querystring را برمی گرداند.

به عنوان مثال (با فرض یک صفحه با آدرس: “http://servername/Lists/EditPage.aspx?IsDlg=1“)

Code

var value = form.RequestValue(“IsDlg”);

// returns “1”

 

SendEmail(to, subject, body, callback)

Return type : None

از زیرساخت شیرپوینت برای ارسال ایمیل استفاده می کند. پاسخ تماس (اختیاری) به محض اتمام عملیات اجرا خواهد شد.

مثال :

Code

var sub = form.GetControl(“c_EmailSubject”).GetValue();

var to = form.GetControl(“c_EmailTo”).GetValue();

var body = form.GetControl(“c_EmailBody”).GetValue();

form.SendEmail(to, sub, body, function(e) {

var ok = e.Success;

if (!ok) alert(“Error sending email : ” + e.ErrorMessage);

});

متغیری که به callback ارسال می شود دارای ویژگی های زیر خواهد بود:

Success : Type = bool
ErrorMessage : Type = string
 

CallWebService(wsName, callback)

Return type : None

برای اجرای دستی یک وب سرویس از پیش تعریف شده استفاده می شود.

مثال :

در مثال زیر ما یک وب سرویس از پیش تعریف شده را فراخوانی می کنیم که سرویس پیش فرض _vti_bin/Lists.asmx شیرپوینت را هدف قرار می دهد. در داخل callback، خطاها را بررسی می‌کند و سپس همه نتایج را حلقه می‌کند تا برای هر فهرست بازیابی شده یک لینک <a> ایجاد کند.

Code

function callback(e) {

var c = form.GetControl(“c_WSResult”);

var s = “”;

if (pf.IsEmpty(e.ErrorMessage)) {

for (var i=0;i<e.ListItems.length;i++) {

if (i>0) s+=”, “;

s += “<a href=\”#\” onclick=\”w = window.open(‘http://wssdev1/Lists/” + e.ListItems[i].Title + “‘,”,’width=800,  height=600, resizable=yes, scrollbars=yes’);\” style=\”color:#cc6600\”>” + e.ListItems[i].Title + “</a>”;

}

c.SetValue(s);

}

else { c.SetValue(e.ErrorMessage); }

form.GetControl(“c_WSButton”).SetEnable(true);

}

form.GetControl(“c_WSButton”).SetEnable(false);

form.CallWebService(“All Lists”, callback);

 

ExecuteSQLQuery(queryName, callback)

Return type : None

برای اجرای دستی یک پرس و جو از پیش تعریف شده SQL استفاده می شود.

مثال :

Code

function callback(e) {

var c = form.GetControl(“c_SQLResult”);

var s = “”;

if (pf.IsEmpty(e.ErrorMessage)) {

for (var i=0;i<e.ListItems.length;i++) {

if (i>0) s+=”, “;

s += e.ListItems[i].NAME;

}

c.SetValue(“<strong>” + s + “</strong>”);

}

else {

c.SetValue(e.ErrorMessage);

}

}

form.ExecuteSQLQuery(“Products”, callback);

 

LoadListQuery(listQueryName,callback)

Return type: None

برای اجرای دستی یک پرس و جو لیست از پیش تعریف شده استفاده می شود.

مثال:

Code
function callback(e) {
  var s = “”;
  if (pf.IsEmpty(e.ErrorMessage)) {
    for (var i=0;i<e.ListItems.length;i++) {
      if (i>0) s+=”, “;
      s += e.ListItems[i].Title;
    }
  }
  else {
      s = e.ErrorMessage;
  }
  alert(s);
}
form.LoadListQuery(“Products”, callback);
 

LoadRecords(listUrl, listIdOrName, viewIdOrName, criteria, fieldsToRetrieve, sortField, sortAscending, rowLimit, callback)

Return type : None

برای بارگیری دستی آرایه ای از موارد لیست بر اساس معیارهای مشخص شده استفاده می شود. معیار آرایه ای از اشیاء pf.SearchSpec است. پارامتر “fieldsToRetrieve” یک آرایه رشته ای از نام فیلدها است. اگر null باشد، تمام فیلدها برگردانده می شوند. اگر ردیف بزرگتر از صفر باشد، تمام سطرها برگردانده می شوند.

مثال:

Code
function callback(e)
{
  if (e.ErrorMessage)
  {
     alert(e.ErrorMessage);
  }
  else
  {
    if (e.ListItems.length > 0)
    {
     alert(“ID:” + e.ListItems[0].ID + ”   Title:” + e.ListItems[0].Title);
   }
    else
    {
       alert(“no items found”);
    }
  }
}

criteria = [];

 
var ss = new pf.SearchSpec();
ss.FieldName = “Title”;
ss.FieldValue = “Test”;
ss.Operator = “Contains”;  //Equals,NotEquals,Greater,GreaterOrEqual,Less,LessOrEqual,IsNull,IsNotNull,BeginsWith,Contains,In, DateRangesOverlap
ss.Type = “Text”;
 
criteria.push(ss);
 
form.LoadRecords(“http://bpcspdev”, “TestList”, “”, criteria, null, null, false, 0, callback);
 

LoadRecord(listUrl, listIdOrName, itemId, callback)

Return type : None

برای بارگیری دستی یک آیتم لیست از طریق اسکریپت بر اساس شناسه آن استفاده می شود.

 

مثال:

Code

function callback(e)

{
  if (e.ErrorMessage)
  {
    alert(e.ErrorMessage);
    return;
  }
  if (e.ListItem)
  {
    alert(“Item ID:” + e.ListItem.ID + “, Title:” + e.ListItem.Title);
  }
}
 
form.LoadRecord(“http://bpcspdev”, “TestList”, 7, callback);
 

DeleteRecords(listUrl, listIdOrName, viewIdOrName, specs, sortField, sortAscending, rowLimit, callback)

Return type : None

برای حذف آرایه ای از آیتم های لیست بر اساس معیارهای مشخص شده استفاده می شود.

url لیست، عنوان لیست یا شناسه نمایش رکوردها باید به عنوان پارامتر ارسال شوند. معیار (مشخصات) آرایه ای از اشیاء pf.SearchSpec است.

مثال:

Code
function callback(e)
{
  if (e.ErrorMessage)
  {
     alert(e.ErrorMessage);
  }
  else
  {
    if (e.ListItems.length > 0)
    {
     alert(“all items have been deleted!”);
   }
    else
    {
       alert(“no items found!”);
    }
  }
}

criteria = [];

 
var ss = new pf.SearchSpec();
ss.FieldName = “Title”;
ss.FieldValue = “Test”;
ss.Operator = “Contains”;  //Equals,NotEquals,Greater,GreaterOrEqual,Less,LessOrEqual,IsNull,IsNotNull,BeginsWith,Contains,In, DateRangesOverlap
ss.Type = “Text”;
 
criteria.push(ss);
 
form.DeleteRecords(“http://bpcspdev”, “TestList”, “”, criteria, null, null, false, 0, callback);
 

DeleteRecord(listUrl, listIdOrName, itemId, callback)

Return type : None

برای حذف یک رکورد در یک لیست استفاده می شود.

url لیست، عنوان لیست و شناسه رکورد باید به عنوان پارامتر ارسال شوند.

مثال :

Code

form.DeleteRecord(“http://servername”, “Customers”, “2”, function(e) {

if (!pf.IsEmpty(e.ErrorMesage)) alert(“Error occurred : ” + e.ErrorMessage);

});

 

DeleteCurrentRecord(confirm)

ReturnType : None

برای حذف رکورد فعلی استفاده می شود. برای اجبار یا حذف پیام تأیید ارائه شده به کاربر نهایی، یک پارامتر لازم است.

مثال :

Code

form.DeleteCurrentRecord(false);

 

CancelRecord()

Return type : None

هنگامی که کاربر دکمه Cancel را در نوار ابزار فشار می دهد، تأثیر مشابهی دارد.

مثال :

Code

form.CancelRecord();

 

SaveRecord() or SaveCurrentRecord()

Return type : None

رکورد فعلی را ذخیره می کند. این روش با فشار دادن دکمه “ذخیره” توسط کاربران، همان اثر را دارد.

اعتبارسنجی‌ها روی داده‌های فرم اعمال می‌شوند (یا فیلدهای الزامی یا کد اعتبارسنجی سفارشی از اسکریپت)

مثال :

Code

form.SaveRecord();

 

SaveRecord(url, listIdOrName, listItem, callback)

مورد لیست ارائه شده را ذخیره می کند. مورد باید یک شی جاوا اسکریپت باشد که دارای خصوصیات نامگذاری شده به نام ستون هایی است که می خواهیم به روز کنیم.

مثال :

Code

var item = new Object();

item.Title = “New Item”;

item.Status = “Open”;

item.Category = “1;#Category A”;

form.SaveRecord(“http://servername”, “listA”, item, function (e) {

var error = e.ErrorMessage;

var newItem = e.ListItem;

});

 

SaveAndExit()

Return type : None

همان عملی را انجام می دهد که توسط دکمه Save-and-Close نوار ابزار انجام می شود.

مثال :

Code

form.SaveAndExit();

 

GetSectionByKey(key)

Return type : FormSection object

یک شی بخش را برمی‌گرداند که با کلید ارائه شده مطابقت دارد.

هر بخش در یک فرم ممکن است یک کلید شناسه داشته باشد (شما می توانید آن را با استفاده از فرم مربوط به خصوصیات بخش در طراح زمان اجرا تنظیم کنید)

مثال

Code

var section = form.GetSectionByKey(“Main”);

if (section != null) section.Collapse();

 

ExpandSection(sectionKey)

Return type : None

یک بخش فرم را گسترش می دهد.

مثال : 

Code

form.ExpandSection(“SectionA”);

 

CollapseSection(sectionKey)

Return type : None

یک بخش فرم را جمع می کند

مثال :

Code

form.CollapseSection(“SectionA”);

 

HideSection(sectionKey)

Return type : None

یک بخش فرم را پنهان می کند

مثال :

Code

if (!form.UserInGroup(“Administrators”))

form.HideSection(“SectionA”);

 

ShowSection(sectionKey)

Return type : None

یک بخش فرم را نشان می دهد که پنهان است

مثال :

Code

if (form.UserID() == “1”) form.ShowSection(“SectionA”);

else form.HideSection(“SectionA”);

 

GetControl(controlName)

Return type : FormControl object

فرم را برای کنترلی که نام آن به عنوان پارامتر ارسال شده است جستجو می کند.

در صورتی که هیچ کنترلی با نام مشخص شده مطابقت نداشته باشد، شی کنترلی یافت شده یا تهی را برمی گرداند.

مثال:

Code

var c = form.GetControl(“c_Status”);

var value = c.GetValue();

if (value == “Closed”) form.GetControl(“c_Priority”).SetValue(“Low”)

 

GetControlByTargetFieldName(columnName)

ReturnType : FormControl object

در داخل کنترل‌های فرم جستجو می‌کند تا یکی را پیدا کند که به نام ستون فهرست مشخص شده محدود شده است.

مثال :

Code

var c = form.GetControlByTargetFieldName(“Title”);

if (c != null) c.SetValue(“”);

 

HideTab(index)

ReturnType : None

یک مورد برگه را با نمایه آن پنهان می کند (ایندکس بر اساس صفر است).

مثال :

Code

form.HideTab(1);

 

ShowTab(index)

ReturnType : None

یک مورد برگه را با نمایه آن نشان می دهد (شاخص بر اساس صفر است).

مثال :

Code

form.ShowTab(1);

 

SetSectionBorderThickness(key, thickness)

Return Type : None

ضخامت حاشیه یک بخش را تغییر می دهد.

Parameters :

key : The section key

thickness : The border thickness

مثال:

Code

form.SetSectionBorderThickness(“main”, “3px”);

 

SetSectionBorderColor(key, color)

Return Type : None

رنگ حاشیه بخش را تغییر می دهد.

مثال :

Code

form.SetSectionBorderColor(“main”, “#336699”);

 

SetSectionBackColor(key, color)

Return Type : None

رنگ پس زمینه یک بخش را تغییر می دهد.

مثال :

Code

form.SetSectionBackColor(“main”, “#F5F5A5”);

 

SetSectionCellSpacing(key, spacing)

Return Type : None

فاصله سلول های جدول را در داخل یک بخش تغییر می دهد.

مثال :

Code

form.SetSectionCellSpacing(“main”, 3);

 

SetSectionCellPadding(key, padding)

Return Type : None

لایه سلولی جدول را در داخل یک بخش تغییر می دهد.

مثال :

Code

form.SetSectionCellPadding(“main”, 3);

 

SetSectionHeader(key,content)

Return Type : None

محتوای هدر یک بخش را تغییر می دهد.

مثال :

Code

form.SetSectionHeader(“A0”, “<span class=’title’>Companies</span>”);

 

Attachments() and AttachmentsLoaded event

متد Attachments آرایه ای از اشیاء پیوست بارگذاری شده را برمی گرداند.

هر پیوست شامل مشخصات Filename و FullPath است.

نمونه اسکریپت نوشته شده در رخداد LoadCompleted فرم که تصاویر کوچکی را برای تمام پیوست های تصویر مورد فهرست فعلی تولید می کند:

Code
form.AttachmentsLoaded.AddHandler(function(files) {

var s = “”;

var c = form.GetControl(“c_Attachments”);

for (var i=0;i<files.length;i++) {

var name = files[i].FullPath;

var suf = name.substring(name.length – 3, name.length).toLowerCase();

  if (suf == “png” || suf == “gif” || suf == “jpg” || suf == “bmp”)

s = s + “<span style=’padding:10px’><a href=’” + files[i].FullPath + “‘ target=’_blank’ style=”><img src=’” + files[i].FullPath + “‘ width=’32’ height=’32’ style=’border:0px’ /></a></span>”

}

c.SetValue(s);

});
 

SetTabHeader(Tab Ident Number, an HTML span containing the text which also sets the visual properties)

Return Type : None

ویژگی های سربرگ یک برگه را تغییر می دهد.

مثال :

Code

form.SetTabHeader(0, “<span style=’font-size:19px;padding:5px;cursor:pointer;color:#3399FF;’>My Best Form</span”);

 

Url()

Return Type : String

آدرس فهرست فرم را برمی گرداند. قابل استفاده در اسکریپت و فرمول.

مثال :

Code

var mySiteUrl = form.Url();

 

 LoadCurrentUser(Web site Url, callback function)

Return Type : Object

اطلاعات کاربر فعلی را در یک شی User برمی‌گرداند.

User Object:

– LoginName (string)

– ID (string)

– FullName (string)

– IsSiteAdmin (boolean)

– Email (string)

– Groups (object)

مثال:

Code
function callback(e)
{
 var i = e.User.LoginName + “,” + e.User.ID + “,” + e.User.FullName + “,” + e.User.Email;
 alert(i);
}
 
form.LoadCurrentUser(“http://bpcspdev/DimThen”,callback);
 

CopyFile(sourceUrl, sourceList, docID, targetUrl, targetList, targetFolder, targetFileName, attributes, overwrite, callback)

Return Type : None

یک سند را از یک کتابخانه اسناد به کتابخانه دیگر کپی می کند.

مثال :

Code
 
form.CopyFile(“http://devserver”, “Shared Documents”, “13”, “http://devserver/site”, “Reports”, “Folder1”, “Test.doc”, {Title: “My Title”, Category: “Drafts”}, true, function(e) {

alert(“Document Copied”);

});

 

 SetAttachmentGridHeight(height)

Return Type : None

 

ارتفاع شبکه حاوی پیوست های مورد را تنظیم می کند.

مثال :

Code

form.SetAttachmentGridHeight(“400px”);

 

GetTab(Tab Number)

Return Type: Object

شیء برگه انتخاب شده را برمی گرداند. پارامتر Number مبتنی بر صفر است، به این معنی که اگر می خواهید اولین تب ظاهر شده در فرم را انتخاب کنید، باید موارد زیر را انجام دهید:

Code

 form.GetTab(0);

 

SetDisplayMode(mode)

Return Type: None

دو پارامتر را می پذیرد: Flat و Normal

حالت مسطح فرم را به یک صفحه تبدیل می‌کند و هر کنترلی در زیر هم فهرست شده است و برای چاپ آسان‌تر صفحه استفاده می‌شود.

Code

form.SetDisplayMode(“Flat”);

 

ToggleDisplayMode()

Return Type: None

بین حالت صفحه مسطح و عادی جابجا می شود.

Code

form.ToggleDisplayMode();

 

Log(string message)

Return Type: None

این دستور برای استفاده با فرم دیباگ (_log=1) به شما امکان می دهد پیامی را در کادر دیباگ چاپ کنید.

Code

form.Log(“Test message!”);

 

OpenUrl(url, caption, width, height, x, y, callback)

Return Type: None

می توانید از این دستور برای باز کردن یک پنجره پاپ آپ جدید استفاده کنید که به مسیر URL تعیین شده هدایت می شود. شما همچنین می توانید یک تابع تماس را اضافه کنید که پس از بارگیری فرم فعال می شود.

Code
form.OpenUrl(“http://www.google.com”, “Caption”, 1000, 1000, “10”, “10”, callback);
 
function callback(e){
 alert(“Done”);
}
 

SelectedTabIndex()

Return Type: Integer

می توانید از این دستور برای پیدا کردن شماره فهرست برگه انتخابی فعلی استفاده کنید. فهرست برگه انتخاب شده بر اساس صفر است، به این معنی که تب اول 0، تب دوم 1 و غیره را برمی گرداند.

Code
form.SelectedTabIndex();
 

HideInnerTab(key, index)

Return Type: None

می توانید از این دستور برای مخفی کردن یک Inner Tab خاص استفاده کنید. ایندکس زبانه داخلی بر پایه صفر است، به این معنی که اولین تب 0 خواهد بود و کلید نام آن است.

Code
form.HideInnerTab(“c_InnerTabKey”, 0);

ShowInnerTab(key, index)

Return Type: None

می توانید از این دستور برای نمایش یک Inner Tab خاص استفاده کنید. ایندکس زبانه داخلی بر پایه صفر است، به این معنی که اولین تب 0 خواهد بود و key نام آن است.

Code
form.ShowInnerTab(“c_InnerTabKey”, 0);
 

SelectInnerTab(key, index)

Return Type: None

می توانید از این دستور برای انتخاب یک Inner Tab خاص استفاده کنید. ایندکس زبانه داخلی بر پایه صفر است، به این معنی که اولین تب 0 خواهد بود و کلید نام آن است.

Code
form.SelectInnerTab(“c_InnerTabKey”, 0);
 

SelectedInnerTabIndex(key)

Return Type: Integer

می توانید از این دستور برای پیدا کردن شماره فهرست Inner Tab انتخاب شده فعلی استفاده کنید. شاخص برگه داخلی انتخاب شده بر اساس صفر است، به این معنی که تب اول 0، تب دوم 1 و غیره را برمی گرداند.

Code
form.SelectedInnerTabIndex(“c_InnerTabKey”);
 
 
 

DisableInnerTab(key, index)

Return Type: None

می توانید از این دستور برای غیرفعال کردن یک Inner Tab خاص استفاده کنید. ایندکس زبانه داخلی بر پایه صفر است، به این معنی که اولین تب 0 خواهد بود و کلید نام آن است.

Code
form.DisableInnerTab(“c_InnerTabKey”, 0);

EnableInnerTab(key, index)

Return Type: None

می توانید از این دستور برای فعال کردن یک Inner Tab خاص استفاده کنید. ایندکس زبانه داخلی بر پایه صفر است، به این معنی که اولین تب 0 خواهد بود و کلید نام آن است.

Code
form.EnableInnerTab(“c_InnerTabKey”, 0);

 

SetInnerTabHeader(key, index, text)

Return Type: None

شما می توانید از این دستور برای تنظیم یک متن سرصفحه جدید به یک تب داخلی خاص استفاده کنید. ایندکس برگه داخلی بر پایه صفر است، به این معنی که اولین تب 0، کلید نام آن و متن سربرگ جدید است.

Code
form.SetInnerTabHeader(“c_InnerTabKey”, 0, “NewHeader”);
 

LoadGroupsInSite(url, callback)

Return Type: Array of Objects

می توانید از این دستور برای بارگذاری گروه های شیرپوینت سایت استفاده کنید. این دستور دو پارامتر را می پذیرد، آدرس سایت و یک تابع callback که می توانید از آنها برای بازیابی اطلاعات مورد نیاز خود استفاده کنید.

اشیاء برگشتی حاوی اطلاعات گروه زیر هستند:

–  ID [number]

–  IsGroup [boolean]

–  Name [string]

– LoginName [object]

– Email [object]

– IsSiteAdmin [boolean]

– Type [object]

– uid [string]

 

از آنجایی که این یک تابع پیچیده است، از یک مثال برای توضیح کاربرد آن استفاده خواهیم کرد. مثال ما شامل یک کنترل Combobox است که از آن برای بارگذاری نام گروه ها به نام c_Groups و یک دکمه استفاده می کنیم که از اسکریپت زیر برای بارگیری هر گروه در سایت استفاده می کند.

از اسکریپت زیر در ویژگی Action دکمه استفاده کنید تا c_Groups Combobox را با نام گروه بارگیری کنید:

Code
if(!pf.IsEmpty(form.Url()))
{
    var theSiteURL = form.Url();
 
 
 
 
    function loadGroupsCallback(e)
    {
        var cmb = form.GetControl(“c_Groups”).InputControl;
        var groups = [];
        for (var i=0; i < e.PeopleAndGroups.length; i++)
        {
 
           groups.push(e.PeopleAndGroups[i].Name);
 
        }
        cmb.SetDataSource(groups);
    }
 
    form.LoadGroupsInSite(theSiteURL, loadGroupsCallback);
}
 

LoadUsersInGroup(url, groupName, callback)

Return Type: Array of Objects

می توانید از این دستور برای بارگیری کاربران گروه شیرپوینت استفاده کنید. این فرمان سه پارامتر، آدرس سایت، نام گروه و یک تابع callback را می‌پذیرد که می‌توانید برای بازیابی اطلاعات مورد نیاز از آن استفاده کنید.

اشیاء برگشتی حاوی اطلاعات گروه زیر هستند:

– LoginName [string]

–  ID [string]

–  FullName [string]

– IsSiteAdmin [boolean]

– Email [string]

– Groups [object]

– uid [string]

باز هم، از آنجایی که این یک تابع پیچیده است، ما به استفاده از مثال بالا برای توضیح کاربرد آن ادامه خواهیم داد. مثال بالا حاوی یک کنترل Combobox بود که از آن برای بارگذاری نام هر گروه در سایت استفاده کردیم. پس از این، ما یک DataGrid به نام c_UsersInGroup اضافه می کنیم که از آن برای نشان دادن نام ورود و نام کامل هر کاربر در گروه انتخاب شده استفاده می کنیم. همچنین دکمه دیگری اضافه می کنیم که تابع LoadUsersInGroup را فراخوانی می کند.

از اسکریپت زیر در ویژگی Action دکمه برای پر کردن دیتاگرید استفاده کنید:

Code
 
 
var theSiteURL = form.Url();
 
form.LoadUsersInGroup(theSiteURL, form.GetControl(“c_Groups”).GetValue(), callback);
function callback(e) {
 
    var grid = form.GetControl(“c_UsersInGroup”).InputControl;
    var users = [];
    if (pf.IsEmpty(e.ErrorMessage)) {
        for (var i = 0; i < e.Users.length; i++) {
            users.push({ LoginName: e.Users[i].LoginName, FullName: e.Users[i].FullName });
        }
        grid.SetDataSource(users);
    }
    else
        alert(e.ErrorMessage);
 
}
 

AddUserInGroup(url, groupName, username, callback)

Return Type: none

می توانید از این دستور برای افزودن کاربر به گروه شیرپوینت استفاده کنید. این دستور چهار پارامتر را می پذیرد، آدرس سایت، نام گروه، نام کاربر و یک تابع callback که می توانید از آن برای بازیابی موفقیت یا شکست عملیات استفاده کنید.

Code
 
var theSiteURL = form.Url();
 
form.AddUserInGroup(theSiteURL, “example site Members”, “ExampleSiteDomain\\ExampleUser”, callback);
 
function callback(e) {
 
    if (pf.IsEmpty(e.ErrorMessage)) {
        alert(“Success”);
    }
    else
        alert(e.ErrorMessage);
 
}
 
 

DeleteUserFromGroup(url, groupName, username, callback)

Return Type: none

می توانید از این دستور برای حذف یک کاربر از گروه شیرپوینت استفاده کنید. این دستور چهار پارامتر را می پذیرد، آدرس سایت، نام گروه، نام کاربر و یک تابع callback که می توانید از آن برای بازیابی موفقیت یا شکست عملیات استفاده کنید.

Code
 
  
var theSiteURL = form.Url();
 
form.DeleteUserFromGroup(theSiteURL, “example site Members”, “ExampleSiteDomain\\ExampleUser”, callback);
 
function callback(e) {
 
    if (pf.IsEmpty(e.ErrorMessage)) {
        alert(“Success”);
    }
    else
        alert(e.ErrorMessage);
 
} 

 

SetAttachmentTabHeader(theHeaderText)

Return Type: none

می توانید از این دستور برای تغییر هدر در تب Attachments استفاده کنید. دستور یک پارامتر، یک مقدار رشته را می پذیرد.

می توانید از کد زیر در اسکریپت Load Completed فرم استفاده کنید:

Code 

form.SetAttachmentTabHeader(“My Attchments”);

 

AddToolbarButton(icon, text, style, position)

Return Type: none

می توانید از این دستور برای ایجاد یک دکمه سفارشی در قسمت نوار ابزار فرم استفاده کنید. همچنین می توانید دکمه را به گونه ای تنظیم کنید که اقدامات مختلفی را انجام دهد. دستور چهار پارامتر را می پذیرد:

– icon:  The icon’s path, as a string value.

– text: The text to appear beneath the icon.

– style: Defines the button’s style. Possible values can be:

– An empty string, which will create a default button, with an icon and a text underneath.

– “tiny” will create a button with a small icon.

– “tinynotext” will create a button with a small icon and no text underneath.

– “notext” will create a button with a normal-sized icon and no text underneath.

– position: Use form.TOOLBAR to place it next to the other form toolbar buttons.

 

به عنوان مثال، یک دکمه سفارشی ایجاد می کنیم، آن را در انتهای بخش نوار ابزار قرار می دهیم و مطمئن می شویم که هر بار که آن را فشار می دهید، فرم تمام داده ها را ذخیره می کند.

می توانید از کد زیر در اسکریپت Load Completed فرم استفاده کنید:

Code 
 
if (form.BUTTON_TEMPSAVE == null) {
    // adding toolbar buttons
    var imgName = form.Url() + “/Form%20Pictures/saveimg.png”;
    var txt = “Temp Save”;
    var style = “”;
    form.BUTTON_TEMPSAVE = form.AddToolbarButton(imgName, txt, style, form.TOOLBAR);
 
    form.BUTTON_TEMPSAVE.onclick = function (e) {
        form.SaveRecord();
    };
}
 
 
 

GetTabHeader(index)

Return Type: string

می توانید از این دستور برای بازیابی متن سربرگ از یک برگه استفاده کنید. این فرمان یک پارامتر را می پذیرد، یک عدد شاخص که ترتیب ظاهر برگه را نشان می دهد. شاخص بر اساس صفر است، به این معنی که تب اول 0، دومی 1 و غیره است.

 

می توانید از کد زیر در اسکریپت Load Completed فرم استفاده کنید:

Code 
 
var rr = form.GetTabHeader(0);
alert(rr);
 

SetTranslation(key, value)

Return Type: none

می توانید از این دستور برای تغییر نمایش متنی هر کنترل استاندارد روی فرم استفاده کنید. شما معمولاً این کار را با استفاده از بخش Localization در فرم طراح انجام می دهید، اما می توانید با استفاده از این تابع به صورت برنامه نویسی نیز همین کار را انجام دهید.

تابع دو پارامتر را می پذیرد، بخش Key بخش کلیدی از بخش Localization خواهد بود و مقدار آن نمایش متنی است که می خواهید استفاده کنید.

برای مثال، قسمت متنی دکمه New Record فرم را تغییر می دهیم.

می توانید از کد زیر در اسکریپت فرم طراحی بارگذاری شده استفاده کنید:

Code 

form.SetTranslation(“Form_NewRecord”, “Something irrelevant”); 

 

DisableAttachments()

Return Type: none

می توانید از این دستور برای غیرفعال کردن استفاده از تب Attachments استفاده کنید.

Code 

form.DisableAttachments();

 

EnableAttachments()

Return Type: none

می توانید از این دستور برای فعال کردن استفاده از تب Attachments استفاده کنید.

Code

form.EnableAttachments();

ضبط پیام صوتی

زمان هر پیام صوتی 5 دقیقه است