Metaprogramming in Abinitio
1. How to create output DML dynamically based in INPUT DML
2. How to create intermediate transform( XFR) dynamically based on INPUT DML
Please See my you tube video for explanation :
PART 1
PART 2
For Example, let us say, we have an Input DML as below-:
cat input.dml
record
string(",") name;
decimal(",") age;
decimal(",") salary;
string(",") aadharid;
date("yyyy-mm-dd")(",") joiningdate;
string(",") mobileno=NULL;
string(",") dlno=NULL;
string(",") passportnumber=NULL;
end;
Metaprogramming:
Type dml_field_info =record
String(integer(4))
name;
String(integer(4))
dml_type;
String(integer(4))
default;
Decimal(1)
nullable;
Decimal(1)
nullflag;
String(integer(4))
condition;
String(integer(4))
form;
End;
Make_field
============================
Dml_variable_vec =
record
String(integer(4))
name;
String(integer(4))
dml_type;
String(integer(4))
init;
String(integer(4))
comment;
Decimal(1)
nullable=”1”;
End;
Make_local()
Dml_rule_vec =
record
String(integer(4))
lhs;
String(integer(4))
rhs;
Decimal(“,”) priority;
String(integer(4))
comment=NULL(“”)
End;
make_rule()
Dml_statement_vec =record
String(integer(4)) statement;
String(integer(4))
comment=NULL(“”)
End;
Make_statement(statement=”if(i>56)
k=k +1;”)
Dml_statement
Record
Dml_metadata_string statement;
Dml_metadata_String
comment=null(“”);
Dml_metadata_string scomment=null(“”);
End
Input àReformatàOutput
For other such content related to AWS , Abinitio, and UNIX , SQL DWH , please visit my channel.
by DataPundit...
The complex topic you have covered so nicely, thanks for it.
ReplyDeleteThanks
DeleteYour channel is a blessing, thank you for creating such good videos on complex topics
ReplyDelete