CftClub.ru
Клуб специалистов ЦФТ-Банк


Notice: Undefined variable: s_watching_topic_img in /home/tfs/cftclub.ru/docs/viewtopic.php on line 668
Не понятные конструкции в коде. Help.

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Уроки ЦФТ-Банк для начинающих
Предыдущая тема :: Следующая тема  
Автор Сообщение
Anna_buk
Участник
Неподтвержденный


Вступление в Клуб: 10.03.2020
СообщениеСр Мар 11, 2020 09:46   Не понятные конструкции в коде. Help. Ответить с цитатой
Полезность: Нет оценки
Здравствуйте. С ЦФТ столкнулась по приёмке доработок от разработчиков и тестировании.
Хочу разобраться по коду что тут делается.
Подскажите пожалуйста.
Примерно такой код в v_req_clob помещает вот такую строку с XML:<Responce><Data><name><code>code123</code><Params><par1>123</par1><par2>123</par2></Params></name></Data></Responce>

И подскажите, возможно ли чтобы ЦФТ отформатировало результат ? когда ответ формируется большой, в одну строку, очень неудобно в нем ориентироваться.
Спасибо.

Код:
Declare
   p_clob  clob:='<par1>123</par1><par2>123</par2>';
   StrHead   varchar2(32767);
   StrFoot      varchar2(32767);
   v_req_clob   clob;
begin
   StrHead :=
      &xmltag('Responce',
            &xmltag('Data',
               &xmltag('name'
               ||   &xmltag('code', 'code123')
               ||   &xmltag('Params', &splitlex)
                          )
                    )
         );
   &splitstr(StrHead,StrFoot);
   &wr_clob(v_req_clob,StrHead);
   dbms_lob.append(v_req_clob,p_clob);
   &wr_clob(v_req_clob,StrFoot);
End;
Volod
Профи
Неподтвержденный


Вступление в Клуб: 19.09.2007
СообщениеСр Мар 11, 2020 14:05    Ответить с цитатой
Полезность: Нет оценки
Не понятно, что хотите отформатировать. Если строку xml, то ее лучше смотреть либо в браузере, либо специальными вьюверами.
Матвеев Евгений
Профи
Неподтвержденный


Вступление в Клуб: 31.01.2012
СообщениеСр Мар 11, 2020 14:57   Re: Не понятные конструкции в коде. Help. Ответить с цитатой
Полезность: Нет оценки
Anna_buk пишет:

И подскажите, возможно ли чтобы ЦФТ отформатировало результат ? когда ответ формируется большой, в одну строку, очень неудобно в нем ориентироваться.


Как вариант использую такой

https://xmlbeautifier.com

, но на вкус и цвет как говорится...)
Anna_buk
Участник
Неподтвержденный


Вступление в Клуб: 10.03.2020
СообщениеСр Мар 11, 2020 21:45   Re: Не понятные конструкции в коде. Help. Ответить с цитатой
Полезность: Нет оценки
Матвеев Евгений пишет:
Anna_buk пишет:

И подскажите, возможно ли чтобы ЦФТ отформатировало результат ? когда ответ формируется большой, в одну строку, очень неудобно в нем ориентироваться.


Как вариант использую такой

https://xmlbeautifier.com

, но на вкус и цвет как говорится...)


Имелось ввиду чтобы ЦФТ отдавало отформатрированный XML.
Anna_buk
Участник
Неподтвержденный


Вступление в Клуб: 10.03.2020
СообщениеСр Мар 11, 2020 21:49    Ответить с цитатой
Полезность: Нет оценки
Ну форматирование не особо волнует.
Кто в целом может объяснить эти конструкции не совсем понятные. Я в описании языка по поиску не смогла найти их.
Что такое splitstr и зачем оно. Что такое xmltag ?
Код:

Declare
   p_clob  clob:='<par1>123</par1><par2>123</par2>';
   StrHead   varchar2(32767);
   StrFoot      varchar2(32767);
   v_req_clob   clob;
begin
   StrHead :=
      &xmltag('Responce',
            &xmltag('Data',
               &xmltag('name'
               ||   &xmltag('code', 'code123')
               ||   &xmltag('Params', &splitlex)
                          )
                    )
         );
   &splitstr(StrHead,StrFoot);
   &wr_clob(v_req_clob,StrHead);
   dbms_lob.append(v_req_clob,p_clob);
   &wr_clob(v_req_clob,StrFoot);
End;
[/list]
Матвеев Евгений
Профи
Неподтвержденный


Вступление в Клуб: 31.01.2012
СообщениеЧт Мар 12, 2020 02:14    Ответить с цитатой
Полезность: Нет оценки
Anna_buk пишет:
Ну форматирование не особо волнует.
Кто в целом может объяснить эти конструкции не совсем понятные. Я в описании языка по поиску не смогла найти их.
Что такое splitstr и зачем оно. Что такое xmltag ?


Макроподстановка... обычная...
Описание либо в текущем модуле либо через инклуд
Можете вставить на конструкции splitstr или xmltag курсором в исходниках, нажать ф12 и посмотреть где, в какой операции живет реализация и что она собственно делает
Anna_buk
Участник
Неподтвержденный


Вступление в Клуб: 10.03.2020
СообщениеЧт Мар 12, 2020 12:24    Ответить с цитатой
Полезность: Нет оценки
Матвеев Евгений пишет:
Anna_buk пишет:
Ну форматирование не особо волнует.
Кто в целом может объяснить эти конструкции не совсем понятные. Я в описании языка по поиску не смогла найти их.
Что такое splitstr и зачем оно. Что такое xmltag ?


Макроподстановка... обычная...
Описание либо в текущем модуле либо через инклуд
Можете вставить на конструкции splitstr или xmltag курсором в исходниках, нажать ф12 и посмотреть где, в какой операции живет реализация и что она собственно делает

Да уточнила и мне подсказали это вроде как ручной сбор XML Shocked .
Но не поняла зачем splitlex тут нужен.
Код:
splitlex const string :='<SPLIT/>';

procedure SplitStr(StrHead in out varchar2(32767), StrFoot out varchar2(32767)) is
   ps number;
begin
   ps := instr(StrHead,&splitlex);
   if ps > 0 then
      StrFoot := substr(StrHead,ps+length(&splitlex));
      StrHead := substr(StrHead,1,ps-1);
   else   
      StrFoot := null;
   end if;
end;

function xmltag(TagName varchar2(32767), TagValue varchar2(32767)) return varchar2(32767) is
   ret varchar2(32767);
begin
   if tagname is null then
      pragma error('Не задано имя тэга');
   end if;
   ret := '<'||tagname;

   tagvalue := dbms_xmlgen.convert(tagvalue,0);

   ret := ret || sattr || '>' || tagvalue || '</' || TagName || '>';
   return ret;
end;

procedure wr_clob(v_clob in out nocopy clob, wstr varchar2(32767)) is
begin
   dbms_lob.writeappend(v_clob, length(wstr), wstr);
end;
Матвеев Евгений
Профи
Неподтвержденный


Вступление в Клуб: 31.01.2012
СообщениеЧт Мар 12, 2020 13:50    Ответить с цитатой
Полезность: Нет оценки
Anna_buk пишет:

Но не поняла зачем splitlex тут нужен.


Судя по исходникам процедура для разделения XML на заголовок strhead и тело strfoot по разделителю splitlex

Решили назвать разделитель сплитом

XML свободный формат)
Anna_buk
Участник
Неподтвержденный


Вступление в Клуб: 10.03.2020
СообщениеВт Мар 24, 2020 15:52    Ответить с цитатой
Полезность: Нет оценки
А есть документация по этому ? Это же какая-то ЦФТ-ая разработка ?
Матвеев Евгений
Профи
Неподтвержденный


Вступление в Клуб: 31.01.2012
СообщениеВт Мар 24, 2020 16:19    Ответить с цитатой
Полезность: Нет оценки
Anna_buk пишет:
А есть документация по этому ? Это же какая-то ЦФТ-ая разработка ?

У ЦФТ нет документации комментирующей исходники
Только по бизнесу плюс описания синтаксиса и арм ов
Едва ли ЦФТ будет кому то объяснять зачем тут в исходниках нужен splitlex...
Anna_buk
Участник
Неподтвержденный


Вступление в Клуб: 10.03.2020
СообщениеВт Мар 24, 2020 17:53    Ответить с цитатой
Полезность: Нет оценки
Матвеев Евгений пишет:
Anna_buk пишет:
А есть документация по этому ? Это же какая-то ЦФТ-ая разработка ?

У ЦФТ нет документации комментирующей исходники
Только по бизнесу плюс описания синтаксиса и арм ов
Едва ли ЦФТ будет кому то объяснять зачем тут в исходниках нужен splitlex...


Нет документация бывает.
Мне давали както документацию ЦФТную по &out_put_val &out_put_coll &get_num и т.п

Это не исходники цфт. Это оутсорс делал. Вроде бы возможности системы использованы, но в 35_сервисы_и_интерфесы тоже не нашла.
Матвеев Евгений
Профи
Неподтвержденный


Вступление в Клуб: 31.01.2012
СообщениеВт Мар 24, 2020 18:32    Ответить с цитатой
Полезность: Нет оценки
Anna_buk пишет:

Мне давали както документацию ЦФТную по &out_put_val &out_put_coll &get_num и т.п

Если вспомните название документа... с большой долей вероятности его можно будет разыскать ...)))
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Уроки ЦФТ-Банк для начинающих Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru