معرفی و ساخت فرآیند پیشرفته 00:08

پیش از هر چیز حتماً آموزش‌های سه جلسهٔ اول را ببینید؛ زیرا بقیهٔ جلسات و همهٔ آموزش‌هایی که داده شده و داده خواهد شد، مبنای همهٔ آن‌ها همین سه جلسهٔ نخست دوره آموزشی است که در صفحهٔ آموزش مشاهده می‌کنید.

در این جلسه می‌خواهیم با فرآیند پیشرفته آشنا شویم. فرآیند پیشرفته فرآیندی است که از طریق آن می‌توانید بسیاری از روندهایی را که در ذهن دارید به‌صورت کاملاً منطبق پیاده‌سازی کنید.

برای ساخت فرآیند پیشرفته مانند بقیهٔ فرآیندها وارد منوی فرآیندهای ربات می‌شویم و یک فرآیند پیشرفته به فرآیندها می‌افزاییم. وارد بخش ویرایش می‌شویم و محیط ساخت فرآیند پیشرفته را مشاهده می‌کنید. نخستین نکته‌ای که باید بدانیم این است که هر فرآیندی وقتی می‌خواهد کاربر وارد آن شود از طریق یک دستور وارد می‌شود.

قبلاً در آموزش‌های پیشین با منوهای ساده آشنا شدید که برای مثال وقتی /start زده می‌شد پیامی در پاسخ ارسال می‌کرد و کلیدهایی نیز داشت. یا وقتی کاربر /contact را ارسال می‌کرد متن دیگری با کلیدهای متفاوت به او ارسال می‌شد. برای شروع فرض کنیم دقیقاً می‌خواهیم همین موارد را با فرآیند پیشرفته بسازیم.

ارسال یک پیام ساده با دریافت دستور 01:27

به فرآیند پیشرفته بازمی‌گردیم. وقتی کاربر دستور /start را ارسال می‌کند می‌خواهیم پیامی در پاسخ ارسال شود. ذخیره می‌کنیم. پیامی که می‌خواستیم را در این قسمت وارد می‌کنیم. کلید تماس با ما با دستور /contact نیز برای آن ایجاد کرده‌ایم. اینجا متن دیگری می‌نویسیم تا وقتی آزمایش کردیم مشخص شود حتماً این قسمت اجرا شده است.

ذخیره می‌کنیم. این از دستور /start. دستور /contact را نیز دقیقاً به همین صورت ایجاد می‌کنیم. دوباره ذخیره می‌کنیم و کلیدی برای بازگشت می‌گذاریم که با زدن آن دستور شروع به ربات ارسال شود. این مورد را نیز ذخیره می‌کنیم. اکنون منوهای عمومی که این دستورها داخل آن بود و فعلاً بقیهٔ منوها را غیرفعال می‌کنیم تا تداخلی در دستورها ایجاد نشود.

اکنون تنها فرآیندی که در ربات وجود دارد همین فرآیند است که دستورهای /start و /contact را داخل آن داریم. به‌عنوان شروع /start را می‌فرستیم و مشاهده می‌شود پیامی که به آن داده بودیم بازگردانده می‌شود. این آغاز کار با فرآیند پیشرفته بود.

مثال با متغیرها 05:08

یک بخش بسیار مهم در فرآیند پیشرفته بخش متغیرهاست. با استفاده از متغیرها می‌توانید مقداری را وارد یک متغیر کنید و پس از آن در بلوک‌های بعدی یا در پیام‌هایی که قرار است استفاده کنید آن متغیر را به‌کار ببرید.

برای مثال متغیری به نام sum به معنای جمع اضافه می‌کنیم و از بخش عملیات ریاضی جمع دو عدد را وارد متغیر sum می‌کنیم. پس از آن می‌توان متغیر sum را در ارسال پیام استفاده کرد یا در بلوک‌هایی که بعداً با آن‌ها آشنا خواهیم شد. با پلاگین var در آموزش‌های قبلی آشنا شدیم. ذخیره می‌کنیم و به پیام‌رسان بله بازمی‌گردیم. مشاهده می‌شود عدد ۵ در این قسمت جایگذاری شد. بنابراین می‌توان از متغیرها استفاده کرد تا نتیجهٔ مجموعه‌ای از عملیات یا یک مقدار مستقیم داخل متغیر قرار گیرد و سپس هر جا لازم بود از آن متغیر استفاده شود.

مقدمات و اصول اولیه 07:07

پیش از ادامه و آشنایی ترتیبی با بلوک‌های مختلف این بخش، چند اصل و مقدمهٔ اولیه را توضیح می‌دهیم.

همان‌طور که مشاهده می‌شود همهٔ بلوک‌ها برآمدگی‌ها و فرورفتگی‌هایی دارند که در دو جهت بالا به پایین یا چپ به راست است. بلوک‌های فرآیند پیشرفته بر اساس همین برآمدگی‌ها و فرورفتگی‌ها به هم وصل می‌شوند و دقیقاً مانند اجزای پازل در کنار هم قرار می‌گیرند. یعنی هر بلوکی که سمت راست آن برآمده باشد می‌تواند وارد بلوک‌هایی شود که سمت چپشان فرورفتگی دارد؛ چه به این شکل باشد چه داخل بلوک، تفاوتی ندارد. بلوک‌هایی می‌توانند زیر هم قرار گیرند که بلوک بالایی برآمدگی و بلوک پایینی فرورفتگی داشته باشد و باز مانند قطعات پازل می‌توان آن‌ها را کنار هم چید.

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

  • معنای اتصال بالا به پایین: وقتی بلوک‌ها را زیر هم وصل می‌کنید به این معناست که این بلوک‌ها قرار است با این ترتیب اجرا شوند. یعنی نخستین بار که کاربر می‌خواهد وارد این دستور شود با این بلوک فرآیندش شروع می‌شود. وقتی /start را وارد کرد وارد این روند می‌شود و این بلوک‌ها زیر هم پشت‌سرهم اجرا می‌شوند. بنابراین این روند که بلوک‌هایش زیر هم چسبیده‌اند یک روند جداگانه است.
  • بلوک‌های مجزا: بلوکی که جدا از این روند ساخته شده کلاً یک روند مجزاست و حتی می‌توانست در فرآیند پیشرفتهٔ دیگری ساخته شود.
  • ترتیب اجرا: ترتیب از بالا به پایین یعنی وقتی از هر یک از این بلوک‌ها کاربر وارد فرآیند شد قرار است این بلوک‌ها به ترتیب اجرا شوند و ربات آن‌ها را تا انتها پیش ببرد. با زدن /start ابتدا وارد این بلوک می‌شود (بلوک ورود با دریافت دستور)، سپس وارد این بلوک می‌شود و متغیر sum را تعیین می‌کند و مقدار ۵ را داخل آن قرار می‌دهد و سپس بلوک ارسال پیام را اجرا می‌کند و متن تعیین‌شده به کاربر ارسال می‌شود.

دربارهٔ اتصال از چپ به راست نیز همهٔ بلوک‌ها ابتدا به این صورت هستند که مقدار بلوک سمت چپ مشخص می‌شود، سپس در بلوک سمت راستی که وارد شده آن مقدار اعمال می‌شود. برای مثال قرار است به‌علاوه شود یا منها شود یا هر عملیات دیگری در این بلوک اعمال شود و سپس خروجی این بلوک دوباره وارد بلوک سمت راستش شود و به همین صورت پیش برود تا به آخرین بلوک برسد که سمت راست آن هیچ بلوکی نباشد.

پس وقتی ربات به این ردیف می‌رسد شروع می‌کند و از سمت چپ مقدارها را وارد بلوک سمت راست می‌کند. اگر اینجا عملیات دیگری اضافه کرده بودیم، ابتدا مقدار ۴ که یک عدد ثابت است به‌علاوهٔ یک می‌شد و عدد ۵ به دست می‌آمد. سپس وقتی وارد این بلوک شد ۵ منهای یک برابر ۴ می‌شود. برای مشاهدهٔ نتیجه ذخیره می‌کنیم و دوباره اجرا می‌کنیم؛ عدد ۸ نمایش داده می‌شود.

بلوک ورود با دریافت دستور 12:32

به‌عنوان نخستین و مهم‌ترین بلوک فرآیند پیشرفته باید ابتدا با بلوک ورود با دریافت دستور آشنا شویم. همان‌طور که مشاهده می‌شود این بلوک فقط می‌تواند در ابتدای روند باشد. چرا؟ چون بالای بلوک فرورفتگی ندارد که بلوک دیگری بتواند از بالا به آن وصل شود. بنابراین همواره بالاترین بلوک، بلوک ورود با دریافت دستور است. البته در شرایط خاصی می‌توان از بلوک‌هایی که فرورفتگی دارند نیز برای شروع استفاده کرد که بعدتر با آن‌ها آشنا خواهیم شد.

یکی از ویژگی‌های این بلوک خود دستور است که معمولاً با اسلش آغاز می‌شود و با دستورها در جلسهٔ اول آشنا شدید. البته می‌توانید مقدارهای فارسی یا مقدارهای بدون اسلش نیز وارد کنید و این به خودتان بستگی دارد، اما حالت معمول استفاده از اسلش و حروف و اعداد انگلیسی است. هر دستوری که اینجا وارد کنید کاربر با زدن آن وارد این روند می‌شود. اما نکته این است که کاربر پس از آن‌که یک‌بار آدرس مستقیم دستور را وارد کرده، اگر آدرس دستور دیگری وارد نکرده باشد هر بار همین دستور اجرا می‌شود. برای مثال اکنون که وارد دستور /start شده‌ایم هر متنی که بفرستیم این دستور دوباره اجرا می‌شود. اگر وارد دستور تماس با ما شویم باز هر چیزی که بفرستیم دستور تماس با ما اجرا می‌شود. علت این است که این گزینه در هر دو دستور زده شده است. اگر این گزینه را برداریم و ذخیره کنیم، دیگر با ارسال مقدارهای جدید این دستور کار نمی‌کند و باید مستقیماً آدرس خود دستور یعنی /start و /contact به ربات ارسال شود تا این مسیر اجرا شود.

پس وقتی این گزینه برداشته می‌شود تمامی این روند برای حالت بدون دستور غیرفعال می‌شود. حالت ورود با ویرایش پیام یا ورود با حذف پیام نیز حالت مشابهی دارند؛ به این معنا که وقتی پیامی را ویرایش می‌کنید آیا می‌خواهید وارد این دستور شود و روندی به‌خاطر ویرایش پیام اجرا شود یا خیر.

پس وقتی کاربر در کانالش پیامی را ویرایش کرد در واقع این ویرایش به ربات ارسال می‌شود و می‌توانید مجموعه‌ای از عملیات را در این صورت انجام دهید. برای مثال در انتقال پست به کانال‌ها گاهی می‌خواهید وقتی پستی ویرایش شد — یا در حالت بعدی وقتی پیامی از کانال حذف شد — این پیام در کانال‌های دیگر نیز حذف یا ویرایش شود. برای این کار طبیعتاً باید این گزینه زده شده باشد تا با ویرایش پیام در کانال این روند اجرا شود و سپس در روند مشخص کنید کدام پیام در کانال‌های دیگر باید ویرایش یا حذف شود. در واقع این ویرایش یا حذف را به کانال‌های دیگر نیز منتقل می‌کنید. فعلاً با این قسمت‌ها کاری نداریم و بعداً بیشتر به آن‌ها می‌پردازیم.

آخرین نکته در ورود با دریافت دستور کلید id است که با زدن آن می‌توانید شناسهٔ بلوک را مشاهده کنید. این شناسه در واقع شناسهٔ زیرفرآیند محسوب می‌شود. یعنی وقتی در بقیهٔ دستورها می‌خواهید شناسهٔ زیرفرآیند تعیین کنید — برای مثال وقتی این فرم اجرا شد پس از اتمام فرم می‌خواهیم کاربر وارد فرآیند پیشرفتهٔ آزمایشی شود و دقیقاً زیرفرآیند مشخصی یعنی دستور /start یا /contact عیناً اجرا شود — باید آن عدد را کپی کنید. در جاهای دیگری نیز که قبلاً با شناسهٔ زیرفرآیند آشنا شدیم می‌توان از آن استفاده کرد. بنابراین شناسهٔ این بلوک نیز به‌عنوان شناسهٔ زیرفرآیند استفاده می‌شود.

بلوک ارسال پیام 17:57

بلوک مهم دیگری که در فرآیند پیشرفته داریم بلوک ارسال پیام است. در این بلوک همان‌طور که دیدید وقتی روی تصویر چرخ‌دنده کلیک می‌کنیم دقیقاً همان بخشی که در منوی ساده می‌دیدیم قابل مشاهده است و می‌توان هر تعداد پیام که بخواهیم اضافه کنیم. با این تفاوت که پلاگین دیگری به نام پلاگین متغیر یا var می‌توانیم استفاده کنیم که مخصوص فرآیند پیشرفته است و در جاهای دیگر استفادهٔ زیادی ندارد. با این بخش قبلاً آشنا شدیم و نحوهٔ ارسال انواع پیام‌ها در جلسهٔ اول آمده است.

نکتهٔ دیگر این است که می‌توانید در بخش تغییر گیرندگان مشخص کنید این پیام قرار است به چه کسانی ارسال شود. اگر کسی را تعیین نکنید در پاسخ همان کسی که پیام /start را فرستاده ارسال می‌شود؛ یعنی کسی که با ربات کار می‌کند. اما می‌توانید این را تغییر دهید و برای مثال بگویید پیامی نیز به مدیر ارسال شود. یعنی می‌توان بلوک ارسال پیام دیگری افزود و پیامی به مدیر فرستاد که شناسهٔ کاربری مدیر را باید از بخش کاربران برداشت و در این قسمت استفاده کرد. اکنون پیام دوم قرار است به این کاربر ارسال شود. بخش «در پاسخ به» برای زمانی است که می‌خواهید پیامی را پاسخ (reply) کنید. در این صورت می‌توانید پیام مورد نظر را با شناسه‌ای که در دست دارید یا جایی ذخیره کرده‌اید (که بعداً با این قسمت آشنا می‌شویم) دریافت کنید یا همین پیامی که کاربر فرستاده را پاسخ دهید. مشاهده می‌شود پیام اول به‌صورت عادی فرستاده شده و پیام دوم به‌صورت پاسخ ارسال شده است.

نحوه حذف بلوک و ذخیره 21:02

وقتی می‌خواهید بلوکی را حذف کنید هم می‌توانید آن را وارد سطل زباله کنید که بعدتر بتوانید استفاده کنید و از آنجا بازگردانید، و هم می‌توانید آن را به همان قسمتی که آورده‌اید (یعنی سمت راست که فهرست بلوک‌هاست) وارد کنید؛ تصویر ضربدر کنار نشانگر دیده می‌شود که با رها کردنش این بلوک به‌طور کامل حذف می‌شود. در هر مرحله که تغییری در بلوک‌ها می‌دهید باید کلید ذخیره را نیز بزنید.

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

نوع خروجی بلوک ها 21:34

نکتهٔ مهم دیگر این است که هر یک از این بلوک‌ها که سمت راستشان برآمدگی دارد به این معناست که می‌توانند خروجی در اختیار شما قرار دهند. برای مثال خروجی این بلوک یک عدد است؛ عدد ۴ و نوع این بلوک number است.

وقتی دو عدد با هم جمع می‌شوند طبیعتاً خروجی‌شان عدد است؛ پس اینجا نیز number نوشته شده است. پیام جاری جنسش چیست؟ جنسش message است، یعنی یک پیام. توجه داشته باشید که نوع خروجی بلوک‌ها بسیار مهم است. برای مثال نمی‌توانید پیام را با عدد جمع بزنید و مشاهده می‌شود نمی‌توان مانند بقیهٔ قطعات پازل آن را در آن قسمت قرار داد و فقط نوع مناسب خود این قسمت را قبول می‌کند. وقتی می‌خواهید بلوک‌ها را داخل هم قرار دهید و به هم وصل کنید، برای مثال پیام جاری را به‌عنوان گیرنده نمی‌توان وصل کرد. برای تعیین گیرنده باید از بخش کاربران، کاربر یا چند کاربر را اضافه کنید؛ مشاهده می‌شود این مورد به این قسمت وصل می‌شود و ربات آن را به‌عنوان ورودی گیرندگان می‌پذیرد.

استفاده از مستندات 23:33

برای این‌که دقیقاً بدانیم خروجی‌ها و ورودی‌های مورد نیاز هر بخش چیست باید از بخش مستندات استفاده کنیم. اگر در مستندات وارد بخش بلوک‌های فرآیند پیشرفته شویم همهٔ این بلوک‌ها به‌صورت ریز و دقیق توضیح داده شده‌اند. برای مثال «ورود با دریافت دستور» را که با هم آشنا شدیم چند فیلد دارد که گفتیم یکی دستور است، یکی امکان ورود بدون دستور با ویرایش پیام، با حذف پیام و شناسهٔ بلوک. و خروجی ندارد. چرا خروجی ندارد؟ چون از سمت راست هیچ برآمدگی‌ای وجود ندارد، پس اینجا نیز خروجی نشان داده نمی‌شود.

برای مثال اگر وارد بخش عملیات ریاضی شویم همان بلوکی است که اینجا دیدیم: یک فیلد دارد که دقیقاً عدد مورد نظر را داخل آن می‌نویسیم و خروجی از نوع number یعنی عدد دارد. یا عملیاتی که برای جمع و تفریق دیدیم: دو عدد وارد می‌کنیم که هر دو از نوع number هستند، عملگر را از فیلد operator انتخاب می‌کنیم و خروجی دوباره یک عدد است.

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

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

نحوه کار با عملگرها (بلوک اگر آن گاه/ در غیر اینصورت) 26:22

یکی از بخش‌های مهم فرآیند پیشرفته بخش «شرط‌ها» است که در بخش عملگرها می‌توانید از شرط‌ها و بلوک‌های شرطی استفاده کنید. برای آشنایی با این بخش یک بلوک شرطی و یک بلوک «اگر» اضافه می‌کنیم. این بلوک‌ها را فعلاً کنار می‌کشیم.

مشاهده می‌شود بلوک شرط هم فرورفتگی دارد که می‌تواند در ادامهٔ بقیهٔ بلوک‌ها قرار گیرد. از طرفی فرورفتگی در سمت چپ وجود دارد؛ یعنی باید ورودی از این قسمت به آن بدهیم. در این قسمت می‌توانیم شرط‌های مختلفی را که می‌خواهیم بررسی شود اضافه کنیم. برای مثال می‌توان متن ارسالی کاربر را بررسی کرد و گفت اگر متن پیام جاری مقدار مشخصی بود پاسخ متفاوتی ارسال شود.

می‌گوییم اگر متن در پیام جاری مساوی «سلام» بود پیامی ارسال کند (این موارد را فعلاً حذف می‌کنیم). در غیر این صورت پیام دیگری ارسال کند. متن هر پیام را متفاوت می‌خواهیم. اینجا برای مثال بنویسد «سلام خوبی؟» و آنجا بپرسد «سؤالی داری یا نه؟»

ذخیره و آزمایش می‌کنیم. وقتی «سلام» می‌فرستم می‌گوید «سلام خوبی؟» و هر متن دیگری اگر بفرستم پیام دوم ارسال می‌شود.

نکته‌ای که اینجا آموختیم این است که برخی بلوک‌ها امکان جهش نیز دارند؛ یعنی می‌توان امکانات این بلوک را بر اساس چرخ‌دنده‌ای که اینجا هست کمتر یا بیشتر کرد. با افزودن این بلوک‌ها داخل این قسمت بلوک اصلی نیز تغییر می‌کند. بر اساس نکاتی که آموختیم اینجا نیز می‌بینیم بلوک اول هیچ فرورفتگی‌ای ندارد، پس «اگر» فقط باید در ابتدا باشد. پیش از این هیچ بلوک دیگری نمی‌تواند وصل شود. از طرفی «در غیر این صورت» در انتها برآمدگی ندارد، پس پس از آن نمی‌توان بلوک دیگری وصل کرد. اما میان این دو می‌توان «در غیر این صورت اگر» را به هر تعداد افزود؛ چون هم فرورفتگی دارد و هم برآمدگی.

بر اساس نکاتی که آموختیم این قسمت را نیز بررسی می‌کنیم. متن پیام را با عبارت «سلام» مقایسه می‌کند. اگر متن پیام مساوی سلام بود این بلوک‌ها اجرا می‌شود. می‌توان هر تعداد بلوک پشت‌سرهم در این قسمت افزود تا پشت‌سرهم اجرا شوند. در غیر این صورت اگر این محقق نشد به شرط بعدی می‌رود. اگر آن هم محقق نشد به شرط بعدی می‌رود و به همین ترتیب. اگر هیچ‌کدام محقق نشد «در غیر این صورت» اجرا می‌شود. برای بررسی شرط ابتدا مقدار «سلام» را درمی‌آورد که عبارتی بسیار ساده است و هنوز متغیری در این قسمت نداریم، سپس مساوی بودنش را با این مقدار بررسی می‌کند. در این مقدار ابتدا پیام جاری را می‌گیرد و متنش را درمی‌آورد؛ یعنی از چپ به راست در هر قسمت باید بررسی کنیم این مراحل انجام می‌شود. معمولاً اگر پیچیدگی نداشته باشد، مانند همین حالت که جمله‌ای ساده می‌نویسید، می‌توانید بلوک‌ها را به هم بچسبانید و کار را انجام دهید. این نکات بیشتر برای زمانی است که می‌خواهید بلوک‌های پیشرفته‌تر بسازید. در غیر این صورت همین‌جا جمله‌ای تقریباً کامل مشاهده می‌کنید که «اگر متن پیام جاری مساوی سلام باشد» این کار انجام شود. ربات به ساده‌ترین وجه این کار را انجام می‌دهد و نیاز به اطلاعات پیچیده و سخت ندارید.

این شرط را یکی پایین‌تر می‌آوریم و پیش از آن شرط دیگری اضافه می‌کنیم. می‌گوییم اگر کاربر با دستور وارد شده بگوید «اگر سؤالی داری بپرس.» پس اگر کاربر با دستور وارد شده بود، یعنی اگر اسلش استارت (/start) را وارد کرده و اکنون نخستین باری است که این دستور را می‌بیند، این پیام برایش ارسال شود. پس از آن هر چیزی که ارسال کند در شرط‌های بعدی قرار می‌گیرد. اگر سلام داد این پاسخ را بدهد.

نکتهٔ بعدی این است که می‌توانید از «تکثیر» استفاده کنید؛ یعنی به‌جای این‌که دوباره مساوی را بیاورید، دوباره متن را بیاورید و دوباره بلوک رشته را بیاورید، می‌توانید راست‌کلیک کنید و «تکثیر» را بزنید و در شرط‌های بعدی استفاده کنید. اگر کاربر ساعت را پرسیده بود در پاسخ ساعت را بفرستد. اگر نام ربات را پرسید نامش را بازگرداند و در غیر این صورت بگوید «متوجه سؤالت نشدم.» ساعت و نام را نیز انجام می‌دهیم.

نکته این است که خود بلوک‌ها کپی می‌شوند؛ پس وقتی از بلوک ارسال پیام تکثیر می‌گیرید پیامی که داخل آن است در این قسمت کپی نمی‌شود و اگر می‌خواهید دقیقاً همین پیام اینجا نیز اضافه شود باید خودتان آن را رونوشت کنید. این نیز نام است و ساعت را می‌خواهیم اینجا بفرستیم.

قبلاً آموخته بودیم که ساعت را با پلاگین date به کاربر بازگردانیم. اگر این را اینجا وارد کنیم تاریخ و ساعت اکنون ارسال می‌شود. اگر فقط ساعت را بخواهیم نشان دهد به این صورت می‌توانیم بنویسیم. اما می‌خواهیم از بلوک‌های خود فرآیند پیشرفته نیز استفاده کنیم تا بیشتر با ابزارهای این بخش آشنا شویم. در بخش ابزارها قسمتی به نام «فرمت زمان» داریم که بر اساس تقویم‌های مختلف می‌تواند زمان شما را دریافت کند. باید از متغیرها برای آن استفاده کنیم. برای مثال متغیری به نام date اضافه می‌کنیم (البته اجباری نیست که حتماً نامش date باشد) و فرمت زمان را وارد date می‌کنیم. منظور از فرمت زمان این است که زمانی را که به ربات می‌دهیم به قالب خاصی که مد نظر ماست تبدیل کند؛ یعنی برای مثال به‌صورت ممیزدار تاریخ را نشان دهد، سپس ساعت، دقیقه و ثانیه را. ممکن است اکنون ثانیه را نخواهیم؛ پس آن را حذف می‌کنیم. برای ساعت از H بزرگ نیز می‌توانید استفاده کنید که در آن صورت بدون صفر اول، ساعت‌های یک‌رقمی نمایش داده می‌شوند.

بنابراین متغیر date را اکنون داریم. به‌جای پلاگین date از پلاگین var که در جلسات قبل با آن آشنا شدیم استفاده می‌کنیم. یک‌بار آزمایش می‌کنیم.

اگر کاربر با دستور وارد شده بود باید این پیام برایش فرستاده شود؛ یعنی اگر مستقیماً خود دستور را زده بود. مشاهده می‌شود این پیام ارسال شد. سپس سلام را می‌فرستیم و می‌گوید «سلام خوبی». سپس ساعت چند را زدیم؛ ساعت را بدون ثانیه فرستاد (البته تاریخ را نیز حذف نکردیم) و «اسمت چیست؟» اکنون جز این موارد هر چیز دیگری بفرستیم می‌گوید «متوجه سؤالت نشدم.» یعنی پیامی که در بخش در غیر این صورت تعیین کرده بودیم. این فقط مثالی بسیار ساده بود تا بیشتر با بلوک «اگر» آشنا شویم.

نحوه افزودن توضیحات به بلوک ها 38:02

گاهی لازم است توضیحی نیز اضافه کنیم تا بعدتر وقتی بازمی‌گردیم متوجه شویم اینجا را برای چه کاری به بلوک‌ها در فرآیند پیشرفته افزوده‌ایم. برای مثال برای این‌که لازم نباشد اینجا را باز کنیم و ببینیم متن چیست، در این قسمت نیز این را نوشته‌ایم. به همین صورت می‌توانیم توضیح (کامنت) نیز اضافه کنیم.

محاسبه الماس مصرفی فرآیند 38:28

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

نحوه استفاده در گوشی و تبلت 38:51

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

کلیدهای کنترل صفحه 39:13

کلیدهایی که در این قسمت وجود دارند: با کلید ذخیره و سطل زباله آشنا شدید. کلید بزرگ‌نمایی و کوچک‌نمایی برای نزدیک‌تر یا دورتر کردن میز کار است. کلیدی که به وسط می‌آورد از هر جایی که محل کارتان باشد حرکت می‌دهد و بلوک‌ها را نمایش می‌دهد. برای بزرگ‌نمایی و کوچک‌نمایی می‌توانید از موشواره نیز استفاده کنید؛ یعنی وقتی چرخ موشواره را بالا و پایین کنید می‌توانید بزرگ‌نمایی و کوچک‌نمایی کنید.

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

معرفی فرآیند مسیرساز 40:17

نکتهٔ آخر این است که فرآیند مسیرساز نیز داریم که دقیقاً مانند فرآیند پیشرفته است. یعنی اگر فرآیند مسیرساز بسازید دقیقاً وارد چنین حالتی می‌شوید و می‌توانید از بلوک‌های فرآیند پیشرفته در آن مسیرساز استفاده کنید. آموزش کوتاه فرآیند مسیرساز در بخش آموزش آمده است و می‌توانید از آن استفاده کنید تا ببینید مسیرساز چیست و چه استفاده‌هایی دارد. تفاوت‌های فرآیند پیشرفته با فرآیند مسیرساز بسیار کم است و اگر آموزش فرآیند مسیرساز را ببینید این تفاوت‌های اندک را نیز متوجه می‌شوید. بعدتر در همین دوره به فرآیند مسیرساز نیز خواهیم پرداخت، اما اگر عجله دارید می‌توانید همین آموزش کوتاه دربارهٔ فرآیند مسیرساز را مشاهده کنید.