Поддержка серверов

CBPAllStateService::SetState: метод Битрикс

Постоянная ссылка: http://bxapi.ru/src/?id=403800

<?php 
//    /bitrix/modules/bizproc/classes/general/stateservice.phpCBPAllStateService::SetState()
//    494:

    
public function SetState($workflowId$arState$arStatePermissions = array())
    {
        global 
$DB;

        
$workflowId trim($workflowId);
        if (
strlen($workflowId) <= 0)
            throw new 
Exception("workflowId");

        
$state trim($arState["STATE"]);
        
$stateTitle trim($arState["TITLE"]);
        
$stateParameters "";
        if (
count($arState["PARAMETERS"]) > 0)
            
$stateParameters serialize($arState["PARAMETERS"]);

        
$DB->Query(
            
"UPDATE b_bp_workflow_state SET ".
            
"    STATE = ".(strlen($state) > "'".$DB->ForSql($state)."'" "NULL").", ".
            
"    STATE_TITLE = ".(strlen($stateTitle) > "'".$DB->ForSql($stateTitle)."'" "NULL").", ".
            
"    STATE_PARAMETERS = ".(strlen($stateParameters) > "'".$DB->ForSql($stateParameters)."'" "NULL").", ".
            
"    MODIFIED = ".$DB->CurrentTimeFunction()." ".
            
"WHERE ID = '".$DB->ForSql($workflowId)."' "
        
);

        if (
$arStatePermissions !== false)
        {
            
$arState self::GetWorkflowState($workflowId);
            
$runtime $this->runtime;
            if (!isset(
$runtime) || !is_object($runtime))
                
$runtime CBPRuntime::GetRuntime();
            
$documentService $runtime->093de43d6f21116a9dd3eb75bd55922bGetService("DocumentService");
            
$documentService->SetPermissions($arState["DOCUMENT_ID"], $workflowId$arStatePermissionstrue);
            
$documentType $documentService->GetDocumentType($arState["DOCUMENT_ID"]);
            if (
$documentType)
                
$arStatePermissions $documentService->toInternalOperations($documentType$arStatePermissions);

            
$DB->Query(
                
"DELETE FROM b_bp_workflow_permissions ".
                
"WHERE WORKFLOW_ID = '".$DB->ForSql($workflowId)."' "
            
);

            foreach (
$arStatePermissions as $permission => $arObjects)
            {
                foreach (
$arObjects as $object)
                {
                    
$DB->Query(
                        
"INSERT INTO b_bp_workflow_permissions (WORKFLOW_ID, OBJECT_ID, PERMISSION) ".
                        
"VALUES ('".$DB->ForSql($workflowId)."', '".$DB->ForSql($object)."', '".$DB->ForSql($permission)."')"
                    
);
                }
            }
        }
    }

Блог разработчика

9 Августа 2016 ResizeImageGet и простой водяной знак налету

Сегодня поговорим о том как проще всего воткнуть водяной знак на картинки в Битрикс. Например, на все изображения каталога.

21 Июля 2016 Добавление вкладки в CRM коробки Битрикс24

В этом посте я покажу, как легко и просто добавить вкладку в сущность CRM. И не просто добавить, а вывести там свой контент.

21 Июля 2016 Как просто обращаться из коробки Битрикс24 на сайт на базе Битрикс

К примеру вам хочется внутренним скриптом дернуть с сайта-магазина информацию, которая там, в свою очередь, закрыта некоторыми правами. Например, админскими. Можно конечно мутить свой REST, или иной формат общения, но проще всего воспользоваться штатным инструментом:

Текст сообщения*
Загрузить изображение