It’s not too bad. It’s been a few years, but once upon a time I dealt with GRV3 quite a bit. Did most of the custom field mapping withing Xlates… via iteration and mapping the specific fields either directly to destination fields, or sometimes mapping them to variables, which could be used later in the Xlate (like when combining several custom fields into the same destination, like combining for Notes, etc.).
A very small snippet of Xlate actions where the custom fields were presented in ZOR segment:
{ { OP COMMENT }
{ COMMENT {Sets user defined data to variables} }
}
{ { OP ITERATE }
{ BASIS 2(0).ZOR.99111(0) }
{ VAR %f1 }
{ TYPE field }
{ BODY {
{ { OP IF }
{ ERR 0 }
{ COND { 2(0).ZOR.99111(%f1).[2] eq =3INTCM01} }
{ THENBODY {
{ { OP COPY }
{ ERR 0 }
{ IN {{2(0).ZOR.99111(%f1).[4]}} }
{ OUT {{2(0).ODS.00271(1).[0]}} }
}
}}
{ ELSEBODY {
}}
}
{ { OP IF }
{ ERR 0 }
{ COND { 2(0).ZOR.99111(%f1).[2] eq =3INTCM02} }
{ THENBODY {
{ { OP COPY }
{ ERR 0 }
{ IN {{2(0).ZOR.99111(%f1).[4]}} }
{ OUT {{2(0).ODS.00271(2).[0]}} }
}
}}
{ ELSEBODY {
}}
}
{ { OP IF }
{ ERR 0 }
{ COND { 2(0).ZOR.99111(%f1).[2] eq =3INTCM03} }
{ THENBODY {
{ { OP COPY }
{ ERR 0 }
{ IN {{2(0).ZOR.99111(%f1).[4]}} }
{ OUT {{2(0).ODS.00271(3).[0]}} }
}
}}
{ ELSEBODY {
}}
}
{ { OP IF }
{ ERR 0 }
{ COND { 2(0).ZOR.99111(%f1).[2] eq =3INTCM04} }
{ THENBODY {
{ { OP COPY }
{ ERR 0 }
{ IN {{2(0).ZOR.99111(%f1).[4]}} }
{ OUT {{2(0).ODS.00271(4).[0]}} }
}
}}
{ ELSEBODY {
}}
}