Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?
- use
- Bitrix\Main\Loader,
- Bitrix\Main\Entity\ExpressionField,
- Bitrix\Forum\TopicTable,
- Bitrix\Main\Entity\Base;
- require($_SERVER['DOCUMENT_ROOT'] . "/bitrix/modules/main/include/prolog_before.php");
- Loader::includeModule('bizproc');
- Loader::includeModule('forum');
- $params = array(
- 'filter' => array(
- '=ID' => 63,
- 'XML_ID' => 'WF_%',
- '=FORUM_XML_ID' => 'bizproc_workflow',
- '!BP_WF.ID' => false
- ),
- 'select' => array(
- 'ID',
- 'FORUM_XML_ID' => 'FORUM.XML_ID',
- new ExpressionField('BP_ID', 'REPLACE(%s, "WF_", "")', array('XML_ID'))
- ),
- 'runtime' => array(
- 'FORUM' => array(
- 'data_type' => 'Bitrix\\Forum\\ForumTable',
- 'reference' => array('=this.FORUM_ID' => 'ref.ID')
- ),
- 'BP_WF' => array(
- 'data_type' => 'Bitrix\\Bizproc\\WorkflowInstanceTable',
- 'reference' => array('=this.BP_ID' => 'ref.ID')
- )
- ),
- 'limit' => 1
- );
- $topicInfo = TopicTable::getList($params)->fetch();
- echo "<pre>";print_r(TopicTable::query()->getLastQuery());echo "</pre>";
- echo "<pre>";print_r($topicInfo);echo "</pre>";
- $bpTaskEntityType = 'BpTaskTable';
- $bpTaskTableName = array('table_name' => 'b_bp_task');
- $bpTaskFields = getFieldMap4Table($bpTaskTableName['table_name']);
- $eTaskTable = Base::compileEntity($bpTaskEntityType, $bpTaskFields, $bpTaskTableName);
- $bpTaskUserEntityType = 'BpTaskUserTable';
- $bpTaskUserTableName = array('table_name' => 'b_bp_task_user');
- $bpTasksFields = getFieldMap4Table($bpTaskUserTableName['table_name']);
- $eTaskUserTable = Base::compileEntity($bpTaskUserEntityType, $bpTasksFields, $bpTasksTableName);
- $taskUser = $eTaskUserTable->getDataClass();
- $params = array(
- 'select' => array(
- 'USER_ID'
- ),
- 'filter' => array(
- '=BP_TASK.WORKFLOW_ID' => $topicInfo['BP_ID'],
- '=BP_TASK.ACTIVITY' => 'ApproveActivity',
- '!@USER_ID' => array('482')
- ),
- 'runtime' => array(
- 'BP_TASK' => array(
- 'data_type' => $eTaskTable->getDataClass(),
- 'reference' => array('=ref.ID' => 'this.TASK_ID')
- )
- )
- );
- $r = $taskUser::getList($params)->fetchAll();
- echo "<pre>";print_r($taskUser::query()->getLastQuery());echo "</pre>";
- echo "<pre>";print_r($r);echo "</pre>";
- function getFieldMap4Table($tableName)
- {
- global $DB;
- $fields = array();
- $q = "describe {$tableName};";
- $r = $DB->Query($q);
- while ($f = $r->Fetch())
- {
- $_f = array();
- if ($f['Key'] == 'Pri')
- {
- $_f['primary'] = true;
- }
- if ($f['Null'] == 'NO')
- {
- $_f['required'] = true;
- }
- $type = 'string';
- if (substr($f['Type'], 0, 4) === 'int(')
- $type = 'integer';
- elseif ($f['Type'] === 'datetime')
- $type = 'datetime';
- elseif ($f['Type'] === 'text')
- $type = 'text';
- $_f['data_type'] = $type;
- $fields[$f['Field']] = $_f;
- }
- return $fields;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement