معامله Troia به سادگی یک برنامه سطح تجارت است که کاربران می توانند وظیفه/وظایف خاصی را مانند "مدیریت اسناد فروش" یا "مدیریت صندوق" انجام دهند.
معاملات دارای یک نام/شناسه کوتاه است که هنگام شروع/فراخوانی معامله (DEVT11) و یک عنوان که متن کوتاه است که معامله را تعریف می کند (معامله آزمون RunCode) به عنوان شناسه معامله استفاده می شود.
مانند سایر زبانهای برنامه نویسی ، معاملات Troia دارای یک نقطه ورود است که هنگام شروع برنامه اخراج می شود. این "نقطه ورود" به عنوان "گفتگوی شروع" خوانده می شود و در تعریف معامله تعریف شده است.
تعریف معاملات ¶
قبل از تعریف ، باید شناسه/نام ، اولین گفتگوی (نقطه ورود) و عنوان معامله را تصمیم بگیرید. این سه اطلاعات داده های اصلی است که یک معامله را تعریف می کند.
عملیات تعریف در برنامه "SYST00 - معاملات و وسایل سیستم" انجام می شود. این برنامه همچنین یک معامله ترویا است. Syst00 اطلاعات معامله را در جداول پایگاه داده Systrans ، Systranstxt ذخیره می کند.
ویژگی دیگری که باید هنگام تعیین معامله ارائه دهید "ماژول" معامله شما است. ماژول یک گروه مجازی از یک یا چند معاملات مانند "برنامه های فروش" یا "برنامه های مالی" و غیره است. ماژول یک داده اصلی نیست و نسبتاً ناچیز است ، فقط برای مستندات استفاده می شود. اطلاعات وضعیت (فعال/غیرفعال) اطلاعات معامله نیز داده های دیگری است که فقط برای اسناد است.
در حین تعریف معامله ، می توانید نماد ، رنگ را برای مشکلات رابط کاربری ارائه دهید.
معاملات و دامنه
معامله تنها ساختاری است که قادر به اجرای کدهای ترویا است. به عبارت دیگر ، برای اجرای یک کد Troia حداقل یک معامله باید در سمت سرور باز شود. همچنین ، معاملات قادر به ذخیره متغیرهای تعریف شده در برنامه های ترویا هستند. معامله بزرگترین دامنه متغیر ترویا است. متغیری که به عنوان جهانی تعریف شده است ، می تواند با هر گفتگوی یا کد کلاس که در معامله اجرا می شود ، قابل دسترسی باشد.
در حال اجرا و تماس با معاملات ¶
هنگامی که یک معامله شروع کننده است ، سرور برنامه اطلاعات اصلی را از جداول معامله در پایگاه داده می خواند و یک ساختار مجازی در حافظه سرور ایجاد می کند. این ساختار مجازی همتای طرف سرور معامله است که در سمت مشتری باز می شود. پس از ایجاد موفقیت آمیز معامله سرور ، تماس های مشتری گفتگوی معامله را شروع می کنند. پس از انجام وقایع گفتگو ، معامله برای تعامل کاربر آماده می شود.
به سادگی ، دو روش برای شروع معامله وجود دارد. اولین ، استفاده شده ترین و طبیعی ترین آن ، انجام معامله از مشتری با کلیک بر روی منوی کاربر ، راه اندازی سریع یا میانبر است. روش دیگر به عنوان "معامله فراخوانی" خوانده می شود و توسط برنامه نویسان برای اجرای معامله در کد Troia استفاده می شود.
تماس با معاملات توسط Troia Code¶
در بعضی موارد ، برنامه نویسان ممکن است برای انجام یک کار به معامله تماس بگیرند و به صورت اختیاری برخی از پارامترهای خروجی را از معامله دریافت کنند. دستور "معامله تماس" برای تماس با یک معامله به صورت برنامه ای استفاده می شود.
در اینجا ساده ترین کاربرد دستور معامله تماس است:
در این تغییر ، Troia Runtime اجرای کد را در دستور معامله تماس متوقف نمی کند. فقط تماسهای داده شده پس از پایان فعالیت سرور (هنگامی که آخرین رویداد/روش در تعامل کاربر انجام شد.) در این حالت ، دریافت پارامترهای خروجی از معامله پشتیبانی نمی شود.
امکان متوقف کردن اجرای کد و انتظار برای پارامترهای خروجی وجود دارد. در اینجا استفاده است:
در این حالت ، Troia Runtime اجرای کد را متوقف می کند و معامله جدیدی را شروع می کند که با کاربر تعاملی است. هنگامی که کاربر معامله را می بندد ، Troia Runtime اجرای کد را از دستور پس از معامله تماس ادامه می دهد ، بنابراین گرفتن پارامترهای خروجی و استفاده از مقادیر آنها در دستورات بعدی امکان پذیر است. با تغییر انتظار ، کاربران مجاز به تغییر معاملات تماس گیرنده در رابط کاربری نیستند بدون اینکه معامله بسته شود.
تماس با معاملات در سرور
به عنوان دستور معاملات پیش فرض تماس ، آتش سوزی یک فرآیند معامله جدید را که توسط مشتری انجام می شود ، باز می کند ، بنابراین معامله جدید با رابط کاربری خود در سمت مشتری باز می شود در برنامه مشتری ظاهر می شود. در این حالت ، کاربران همچنین قادر به تعامل با معامله نامیده هستند.
اما در برخی موارد ، برنامه نویسان ممکن است به نتیجه فرایندی که قبلاً در یک معامله بدون هیچ گونه تعامل کاربر انجام شده است ، نیاز داشته باشند. در این موارد ، می توان با معامله در سرور تماس گرفت. هنگامی که یک معامله در سرور فراخوانی می شود ، سرور معامله را باز می کند و اولین گفتگو است ، رویدادها را اجرا می کند و معامله را می بندد. به عبارت دیگر ، سرور تمام درخواست های مشتری را که در هنگام یک فرآیند افتتاح معامله منظم فراخوانی می شود ، شبیه سازی می کند.
تماس با معامله با تغییر در سرور بسیار ساده است. در اینجا نحو وجود دارد:
پارامترهای ورودی و رویداد فراملی
پارامترهای ورودی بر روی متغیرهای جهانی با نام ، ارزش و نوع مشابه تعریف می شوند. بنابراین عبور پارامترها به عنوان مقادیر ثابت توصیه نمی شود.
اگر دستور معامله تماس پارامترهای ورودی داشته باشد ، پس از "بعد از" رویداد اولین گفتگوی Transcalled نامیده می شود. در صورت عدم وجود پارامتر ورودی ، رویداد transcalled اخراج نمی شود. اجرای رویداد transcalled در گفتگوی شروع اجباری نیست. اگر گفتگو حاوی رویداد transcalled نباشد ، تماس با رویداد حتی اگر پارامتر تماس گیرنده از پارامتر عبور کند ، نادیده گرفته می شود.
وظایف برنامه ریزی شده و معاملات دسته ای
همانطور که قبلاً ذکر شد ، معاملات تنها ساختاری است که قادر به اجرای کدهای ترویا است. بنابراین ، هنگامی که برنامه نویسان باید یک برنامه را به عنوان یک کار برنامه ریزی شده/برنامه ریزی شده اجرا کنند ، همچنین باید معامله را باز کنند. در پلت فرم Troia ، این مورد به عنوان "معامله دسته ای" یا "مشتری دسته ای" خوانده می شود.
با توجه به مفهوم معامله دسته ای ، برنامه نویسان قادر به تعریف یک بلوک کد Troia برای یک ترانسفکتیک هستند که به عنوان دسته ای پیکربندی می شود. این کد در برگه "کد دسته ای" از برنامه "SYST00 - معاملات و اسباب بازی های سیستم" تعریف شده است. هنگامی که یک معامله دسته ای فراخوانده می شود ، سیستم معامله را شروع می کند و اولین گفتگو را باز می کند زیرا یک معامله معمولی علاوه بر این "کد دسته ای" معامله را اجرا می کند.
برای اجرای معامله دسته ای ، دو روش وجود دارد. اولین مورد دسته مبتنی بر مشتری است و این روش به کاربران امکان می دهد رابط کاربری مشتری را مشاهده کنند. گزینه دیگر یک برنامه کنسول است که به عنوان یک تنوع ابزار سرور Admin تعریف می شود. در هر دو روش ، برنامه ریزی در ابزارهای برنامه ریزی سیستم عامل مانند برنامه ریزی Window's Task Scheduler یا Crontab Linux تعریف شده است (پلت فرم Troia ابزارهای برنامه ریزی تعبیه شده ندارد).
برای جزئیات بیشتر در مورد "معاملات دسته ای" ، لطفاً به اسناد راهنما مراجعه کنید.
خواندن اطلاعات معامله
در بعضی موارد ، به عنوان یک برنامه نویس ممکن است به اطلاعاتی در مورد معامله ای که کد شما در آن انجام می شود نیاز داشته باشید. در اینجا برخی از متغیرها و کارکردهای سیستم مفید وجود دارد که اطلاعات مربوط به معامله را ارائه می دهد:
| sys_transaction | برای دریافت نام معامله |
| sys_transactionid | برای دریافت شناسه معامله |
| sys_transactiontype | برای به دست آوردن نوع معامله ، آیا این یک معامله معمولی یا اسباب بازی است؟ |
| sys_isbatchtransaction | برای بررسی اینکه آیا معامله دسته است یا خیر |
| sys_isserveronlytransaction | برای بررسی اینکه آیا معامله فقط سرور است یا نه |
| sys_trancreatedby | برای به دست آوردن کاربر که معامله را ایجاد کرده است |
| sys_trancreatedat | برای به دست آوردن زمان ایجاد معامله |
| sys_tranmodifiedby | برای به دست آوردن آخرین کاربر که معامله را اصلاح کرده است |
| sys_tranmodifiedat | برای آخرین بار که معامله اصلاح شده است |
برای متغیرها و کارکردهای سیستم مفیدتر که داده های مربوط به معامله را برمی گرداند ، لطفاً به اسناد راهنمای مربوطه مراجعه کنید.
تمرین 1: تعریف معامله
لطفاً معامله ای را تعریف کنید که
- یک گفتگوی شروع سفارشی دارد که دارای یک میدان متن و یک دکمه روی آن است.
- معامله Devt11 را روی دکمه کلیک کنید روی رویداد کلیک کنید و مقدار متغیر StringVAR3 را به TextField برمی گرداند.
و سعی کنید تفاوت بین فراخوانی معامله با روش ساده و با تغییر "با انتظار" را درک کنید.
استراتژی برای تحلیل فاندمنتال...
ما را در سایت استراتژی برای تحلیل فاندمنتال دنبال می کنید
برچسب :
نویسنده : سعید شیخزاده
بازدید : <-PostHit->
تاريخ : جمعه
9 تير
1402 ساعت: 12:59