|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
$ f' V% [+ S$ G. [7 F/ r: Y/ t
Teamcenter ITK二次开发源码分享: 创建一个工作流
3 h% B. n: W |7 l/ C
, D8 Y3 t$ {7 S j- /*HEAD CREATE_A_PROCESS CCC ITK */! B9 T1 L, W H
- #include <stdlib.h>
5 J* O- r- s6 x2 ]0 w4 Z - #include <TCcore/aom.h>
% J' G7 X9 C5 |# r+ y3 h - #include <tc/emh.h>; n5 z ]" p9 ]( ^8 T. U
- #include <epm/epm.h>, j) B" z* n" W' J5 m+ \- w: q
- #include <tc/tc.h>
j% X( w+ r; K* ~$ g - #include <sa/tcfile.h>) \, `0 B, Q& }7 ^8 k( L
- #include <itk/mem.h>
$ C' L2 M) M9 N* ]; O# D
: X+ |0 P5 h6 [5 n$ F+ E& v( \% X* E- #define EXIT_FAILURE 1 ( `! b( B- I; m3 F" l
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))* g' ]0 H' y+ r) R, n# @( _5 O
- static void report_error( char *file, int line, char *function, int return_code)
( F3 ^( H8 p" k2 h j1 w" b - {
5 Q' y& C& D% q - if (return_code != ITK_ok)/ l' ?* ^" s3 G; e0 E: b7 Q
- {1 s) J O U2 J8 H8 I3 |% m+ M
- char *error_message_string;) N. s3 [" s! j7 s! G
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);( m# {* B; C: j* T! w7 T5 s! B
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);6 U3 r& d, v! Q h6 ^# j& a$ d C; x3 \$ o
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
: N8 ~% Y" `2 L+ t( ]4 p0 j - if(error_message_string) MEM_free(error_message_string);
7 v( K: q6 O3 q$ ~6 T - printf("\nExiting program!\n");
3 h" F/ n+ Q {1 C& }0 M: \ - exit (EXIT_FAILURE); ! u# I( f4 L& v( u6 v
- }
- A4 {; p4 T! t - }+ _5 K2 F+ r. g$ Z8 P D
: N2 i6 t+ O! L9 ]1 C- i8 G- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
7 X$ d, F- s h4 J - static void check_value( char *function, int value ): l# k0 z7 n5 b* ~/ U6 }, d2 v1 U$ q1 Y
- {: L) E' H% Y9 T0 `
- if (value == 0)
2 U7 k& U p7 A6 T - {
3 Y$ E) ~* x8 `5 J( h - printf ("\t%s is NULL\n", function);3 X+ H, T8 f: Q& s( M
- printf("\nExiting program!\n");
) P* W4 X4 G$ _, Q& @ - exit (EXIT_FAILURE);
& o9 `4 T7 d+ j, i( D - }
% B/ T6 Q9 u0 {5 z# M7 i6 @ F - }
& C7 \0 V! m) E- ~2 v* S
8 s( j7 f' U7 a, l, k) l- ) [! C$ x2 G# B# ?
- static void do_it(void)
: F& A2 K8 S0 ?( C+ n - {0 J( v1 t: b8 S, q8 Y
- int n$ S' \9 j! B- ]! ? v) @' b
- attach_types[1] = {1};! E% a/ z, T, x. H" N% X. n5 |
- tag_t
4 }) j8 W) i$ j w/ c$ f - rev = NULLTAG, + e2 l' b1 U. l, ~9 E$ P# S. x& ^
- process_template = NULLTAG, & N* u. H3 M: G- n
- process = NULLTAG;
6 s& g$ n* W7 i: ^7 L - + @# W' n8 K( C& o
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );& _* `- a$ _9 Q& z% D8 o* o8 Z
- EXIT_IF_NULL( rev );
% @( Z' l/ ?; Y) w" f
5 u& W' ^6 ?6 ^7 V' q, r- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
4 n/ ]3 U6 `2 {8 z - EXIT_IF_NULL( process_template );% S; `5 W7 ^* D
- 8 U. w7 ^; R+ ^/ p
$ o2 R! M7 Q j1 |- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
8 y/ |( Q# M/ A' j - attach_types, &process) );
9 Z/ c- O2 U; m& |5 M2 s6 [ - 6 T6 F! L) V. Z* {* f5 o$ c
- EXIT_IF_NULL( process );
$ M/ q) z% c! z. {# F8 D- f - }
# F4 j& q. G$ \* k' N - ; B9 }% V) H6 `+ s# F7 ]4 ?9 M g
- int ITK_user_main(int argc, char* argv[])
+ ]1 T9 a. j D% S - {
+ X4 E* s8 }. i5 h' F6 U7 C: Q% O, a - int
) z# O" Y! |1 Q7 t& [ - status = 0; y' @. l+ }; [2 b4 n
- : {* ~& L$ h3 X: U+ V+ ~" X0 I! ]
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
1 \- e0 M) j- \# T' X - status = ITK_auto_login();
! Y1 O1 P4 g& R2 @ n -
/ ] l! Q1 Y+ r. k3 \ i( l" N. I - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");" _; ]; a5 u8 W& G' {
- else
; Q' k. e* _* _& }: N% _, o - {* r/ K" g5 _/ z& } l
- printf("\nLogin successful!\n\n");
; m" h4 q' y$ U P$ K# O - ITK_set_journalling(TRUE);9 W! N# E% v' S/ z
- do_it();
D- I c6 x7 n$ r3 |" @ - }# z3 t* S4 w+ y
- ITK_exit_module(TRUE);
, a- c# S: @" P; ]6 `) w2 B - return status;
. V1 ^/ t! j3 f, M) F1 _5 U - }
复制代码
7 \2 d! _) h) o* J ?
% ]$ ~) O% t+ @3 {) Z% ?
/ m: {8 p6 `3 J& u, X3 Q$ K* c9 ~ |
|