| Предыдущая тема :: Следующая тема | 
	
	
		| Автор | Сообщение | 
	
		| 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 ?
 
 [/list] 	  | Код: |  	  | 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;
 | 
 |  | 
	
		|  | 
	
		| Матвеев Евгений Профи
 
 
 Вступление в Клуб: 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
  . Но не поняла зачем 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 и т.п
 
 | 
 Если вспомните название документа... с большой долей вероятности его можно будет разыскать ...)))
 |  | 
	
		|  | 
	
		|  |