2015-12-16 6 views
0

У меня есть поле документа EDI, с которого я пытаюсь извлечь данные. Номер детали клиента указан в PID05 после #. Я пытаюсь вытащить данные между «#» и «» и вернуть их в var_ITNO. Однако мой var_EP не обязательно останавливается в первом пространстве. Любая помощь в том, как исправить эту проблему?EDI X12 EO810 Извлечение данных с пробелом в качестве конечного положения.

var_PID05 = SOURCE.EO810H01.EO810D01.EO810D12.PID05 
var_SP = Find(var_PID05, "#") + 1 
var_EP = find(var_PID05, " ",var_SP) 
var_ITNO = MID(var_PID05 , var_SP , var_EP) 
+0

Почему бы не ваш партнер отправить покупателю номер детали в сегменте IT1? Ввод его в PID - плохая практика. На каком языке вы используете поддержку функции Find? – Andrew

+0

@Andrew Это EO810 из нашей системы, а номер детали клиента включен в описание элемента (PID05). Я не пытаюсь вставить его в PID, но вытащить его из этого поля. – AlliDeacon

+0

, поэтому ваша система генерирует 810, и вы пытаетесь ее разобрать и извлечь из нее информацию? 810 не приходит от торгового партнера? Какой язык вы используете для его анализа? – Andrew

ответ

0

В следующем коде указывалось пространство для длины.

`var_ITNO = MID(var_PID05 , var_SP , var_EP)` 

Я переработал его следующим образом:

`var_PID05 = SOURCE.EO810H01.EO810D01.EO810D12.PID05 
var_SP = InStr(var_PID05, "#") + 1 
var_EP = InStr(var_PID05, " ",var_SP) 
var_LEN = var_EP - var_SP 
var_ITNO = MID(var_PID05 , var_SP , var_LEN)` 

 Смежные вопросы

  • Нет связанных вопросов^_^