Основи Командата се пише Име(аргументи) и винаги връща стойност. Аргументът може да бъде стойност, поле, променлива, операция или друга команда. Имената са на английски; текстовете в кавички остават на вашия език.
Елементите на езика Текст "Спешна оферта" Число 12.5 Булева стойност true Поле на текущия ред $amount Поле на запис form.next Променлива на приложението @vat_rate Списък ["Draft" , "Sent" ] Команда Round ($amount , 2 )Коментар # Напомняне след 15 дни
Операторите Изчисление $price * 1.2 + 5 Сглобяване на текст "Оферта " & $number Сравнение $amount >= 1000 Комбиниране $amount > 0 and not IsEmpty ($customer )Дати Today () + 15
Няколко скрипта Одобряване на оферта Бутон в картата на реда, видим, когато офертата е чернова.
SetField ("status" , "Validated" )SetField ("validated_on" , Today ())SetField ("validated_by" , CurrentUser ())Notify ("Quote validated." )Отказ на запис Събитието record.before_save: Fail отменя записа и показва съобщението.
If (IsEmpty ($customer ), Fail ("Choose a customer." ))If ($amount < 0 , Fail ("The amount cannot be negative." ))Изчисление в реално време Събитието field.change върху количеството.
SetField ("total" , Round ($quantity * $unit_price * (1 + @vat_rate / 100 ), 2 ))Ред в канбана Събитието card.before_move: картата се връща на мястото си, ако правилото не е спазено.
Switch (event.to, "Signed" , If (event.from <> "Sent" , Fail ("A quote must be sent before being signed." )), "Lost" , If (not HasRole ("manager" ), Fail ("Only a manager can mark a quote as lost." )), ) Как се изпълнява скрипт Записите се прилагат накрая, наведнъж: ако скриптът се провали, нищо не се записва. Скриптът не дава никакви допълнителни права: той действа с правата на човека. Работната станция ODESA действа със собствените си права, дори при затворено приложение. Филтър решава дали бутонът се показва или дали събитието се задейства. Ограниченията на едно изпълнение 10 000 изпълнени команди2 000 милисекунди10 000 милисекунди на работната станция ODESA200 записани реда500 реда, върнати при търсенеКомандите Управление CancelПрекратява, показва съобщението и не записва нищо. DoИзпълнява командите по ред и връща стойността на последната. Set("име", Do(…)) с @име другаде в скрипта… FailКато Cancel; освен това отказва операцията на събитие „преди“. В действие: формулярът се отваря отново с това… ForEachИзпълнява командата за всеки елемент от списъка с даденото име; връща броя на обхожданията. IfИзпълнява само избрания клон и връща стойността му. StopПрекратява изпълнението нормално. SwitchИзпълнява резултата на първия случай, равен на стойността; последен самостоятелен аргумент е по подразбиране. TryАко командата се провали, изпълнява втората; „error“ съдържа {code, message, line}.
Променливи GetСтойността на променлива или стойността по подразбиране. SetЗадава стойност на променлива и я връща. Set("име", Do(…)) с @име другаде в скрипта определя блок: той не се…
Стойности AbsАбсолютна стойност. AddDaysДобавя n дни. AddMonthsДобавя n месеца. AppendСписъкът с още един елемент в края. AverageСредната стойност. ContainsВярно, ако текстът съдържа частта. CountБроят на елементите. DayДенят от месеца. EndOfMonthПоследният ден от месеца. FirstПървият елемент. FormatDateФорматирана дата. FormatNumberФорматирано число. InВярно, ако стойността е в списъка. IsEmptyВярно, ако стойността е празна. IsFormatВярно, ако стойността е в правилния формат, включително контролните цифри, ако има такива: email, url, phone,… IsNumberВярно, ако стойността е число или текст с число. LastПоследният елемент. LengthДължина на текст или брой елементи. LowerС малки букви. MatchesВярно, ако текстът отговаря на регулярния израз (добавете ^ и $ за целия текст). MaxНай-голямото число. MinНай-малкото число. MonthМесецът (1 до 12). NotEmptyВярно, ако стойността не е празна. NowДатата и часът. RenderШаблонът с попълнени маркери {…}. ReplaceЗаменя всички срещания. RoundЗакръгляне. SortСортираният списък, по поле за списък от редове ("asc" или "desc"). SplitРазделя текста. StartOfMonthПървият ден от месеца. StartsWithВярно, ако текстът започва така. SumСумата. ToDateДата от текст или от година, месец, ден. ToNumberПреобразува в число. ToTextПреобразува в текст. TodayДнешната дата. TrimБез интервали в началото и края. UpperС главни букви. WeekdayДенят от седмицата (понеделник = 1). YearГодината.
Четене на данни FindРедовете на таблица, които отговарят на всички условия. FindOneПървият ред, който отговаря на условията. FindSortedРедовете, отговарящи на условията, сортирани по поле ("asc" или "desc"), после първите „limit“ (най-много… GetRowРедът с това id.
Запис Лице Екран и въвеждане AskОтваря формуляр; връща отговорите. ConfirmЗадава въпрос да/не. NotifyПоказва съобщение в края. OpenОтваря възел на приложението. RefreshОпреснява изгледа.
Файлове AttachFileИзглед Пост: копира файла от поста в полето на реда. Връща идентификатора на файла. FileCountБроят файлове. FileExtensionРазширението на файл. FileLinkВръзка към файла. FileNameИмето на първия файл. GenerateDocumentГенерира документ от шаблон (име или id) за реда и го записва във файлово поле на реда. Формат pdf или docx.… LinkFileСвързва без копиране към полето на реда вече съхранен файл (pce-… или стойност на файлово поле) или файл от… MoveFileИзглед Пост: премества файла в подпапка, след записите. Връща новия път. RowLinkВръзка към текущия ред. StraightenFileИзправя вече съхранена снимка на документ (pce-… или стойност на файлово поле): обръщане, коригиран наклон,…
Външни AgentСтъпката агент (ИИ), изпълнявана от ИИ сървъра, свързан с ODESA. Agent("reflexion", указание);… CallИзвиква функция, публикувана от сървъра ODESA на приложението и отметната в дефиницията му (раздел Функции).… FunctionsСписъкът на функциите, които приложението може да извиква (име, описание, параметри, четене или действие), по… SendMailИзпраща имейл с обикновен текст чрез ODESA, заедно със записите. До 10 получатели и 20 имейла.
Поща AddMailNoteДобавя „кога, кой: текст“ към бележките на съобщението и го записва в историята му. AddMailTabПоставя раздел върху съобщението (add_interface от AI Agent). viewer: text, markdown, html, json, widget,… CreateMailboxСъздава кутия (папка) на пощенския сървър, в родителската кутия, ако е дадена, след записите. Връща исканото… DeleteMailПремества съобщението в кошчето на кутията, след записите. Без запис: съобщението от събитието poste.mail;… DeleteMailboxИзтрива кутия на пощенския сървър след записите: съобщенията ѝ първо отиват в кошчето. ForwardMailПрепраща съобщението с прикачените файлове до получателите (до 10), с незадължителен уводен текст. MarkMailМаркира полученото съобщение като прочетено (по подразбиране) или непрочетено. Без запис: съобщението от… MoveMailПремества полученото съобщение в папка на пощенската кутия (не при POP). Без запис: съобщението от събитието… ReadMailЧете съобщението директно от кутията: de, a, cc, objet, date, texte, pieces. Само онлайн. Без запис:… RemoveMailTabПремахва раздела с това име от съобщението. RenameMailboxПреименува кутия на пощенския сървър след записите; възелът следва. ReplyMailОтговаря на подателя на полученото съобщение в същата нишка, с цитат. Без запис: съобщението от събитието… SaveMailAttachmentsЗаписва прикачените файлове на полученото съобщение (събитие poste.mail) във файловото поле на реда.… SyncMailПроверява сега кутията на отворения изглед Поща (бутон): последните съобщения, които още не са редове, стават…