https://github.com/mazzy-ax/sysargs
Helper methods for SysArgs class in Microsoft Dynamics AX (Axapta)
https://github.com/mazzy-ax/sysargs
args dynamics-ax
Last synced: 9 months ago
JSON representation
Helper methods for SysArgs class in Microsoft Dynamics AX (Axapta)
- Host: GitHub
- URL: https://github.com/mazzy-ax/sysargs
- Owner: mazzy-ax
- License: mit
- Created: 2019-01-13T06:02:33.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2020-03-02T07:18:51.000Z (about 6 years ago)
- Last Synced: 2023-10-20T21:43:04.496Z (over 2 years ago)
- Topics: args, dynamics-ax
- Language: Java
- Homepage:
- Size: 32.2 KB
- Stars: 3
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# SysArgs
[project]:https://github.com/mazzy-ax/SysArgs
[license]:https://github.com/mazzy-ax/SysArgs/blob/master/LICENSE
[SysArgs][project] – это набор методов на языке X++ для класса SysArgs в [Microsoft Dynamics AX 2009](ax2009), [Microsoft Dynamics AX 2012](ax2012) и [Axapta 4.0](ax4).
* [Get методы](https://github.com/mazzy-ax/SysArgs/wiki/Get-methods) возвращают требуемое значение или бросают исключение
* [Check методы](https://github.com/mazzy-ax/SysArgs/wiki/Check-methods) возвращают `boolean`, не бросают исключений
* [Assert методы](https://github.com/mazzy-ax/SysArgs/wiki/Assert-methods) ничего не возвращают. Бросают исключение, если args не инициализирован или в аргументах не подходящие параметры. Статические методы.
* [Ensure методы](https://github.com/mazzy-ax/SysArgs/wiki/Ensure-methods) возвращают исходный args. Бросают исключение, если в аргументах не подходящие параметры. Методы объекта особенно удобны в ax2012 при инициализации переменных.
Подробнее в [wiki](https://github.com/mazzy-ax/SysArgs/wiki) проекта.
## Пример 1
Стало:
```java
reqTrans = SysArgs::getRecord(args, reqTrans.TableId);
```
Вместо:
```java
if( args.dataset() == reqTrans.TableId && args.record().RecId )
reqTrans = args.record();
else
throw error(Error::missingFormActiveBuffer(element.name()));
```
## Пример 2
Стало:
```java
SysArgs::assertCallerType(args, classnum(FormRun)); // пропустит дальше, если вызвали из формы. Иначе бросит исключение.
if( SysArgs::checkRecord(args, tablenum(ProdTable)) )
{
...
```
Вместо:
```java
if( args && args.caller() && args.dataset() == tablenum(ProdTable) && args.record().RecId )
{
// проверили, что есть вызвавший класс. нет проверки, что вызвали именно из формы
...
```
## Пример 3 для ax2012
Стало:
```java
public static void main(Args args)
{
ProdTable prod = args.ensureCallerType(classnum(FormRun)).getRecord(prod.TableId);
...
```
Вместо:
```java
public static void main(Args args)
{
ProdTable prod;
if( args && args.caller() && args.dataset() == prod.TableId && args.record().RecId )
{
prod = args.record();
...
```
## Благодарности
Спасибо Роману Долгополову (RDOL, [db](https://axforum.info/forums/member.php?u=2836)), его код лежит в основе данного проекта.
## ChangeLog
* [CHANGELOG.md](CHANGELOG.md)
*
## Помощь проекту
Буду признателен за ваши замечания, предложения и советы по проекту как в разделе [Issues](https://github.com/mazzy-ax/SysArgs/issues), так и в виде письма на адрес
Мазуркин Сергей (mazzy)