|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
' V: j* R1 [& f- z8 H' U
Teamcenter ITK二次开发源码分享: 创建一个工作流
0 [% V+ r3 b9 B3 u
. I7 a" p- i$ d4 t! [) v) W- /*HEAD CREATE_A_PROCESS CCC ITK */
1 a4 r9 u8 N) w; r9 ], j; \ - #include <stdlib.h>" S- L4 M; q5 ~/ Q+ [1 k) U+ {
- #include <TCcore/aom.h>3 X0 N/ P, P8 o1 _& s7 G) m
- #include <tc/emh.h>" \; ~ d `& c) E X; F$ L
- #include <epm/epm.h>/ J6 e. j6 \- v; N& k4 d; j
- #include <tc/tc.h>0 D L! [) Q1 z& ]# X9 D
- #include <sa/tcfile.h>
8 ?8 _2 i, `. m6 H* A1 I+ T - #include <itk/mem.h>. I) [) _5 A. s" @& W( v
- 9 l7 U7 U+ l0 j
- #define EXIT_FAILURE 1 * S. y2 r0 F1 Y' z# D4 D8 }7 W2 Q
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))2 @2 A( ~$ i& e: j
- static void report_error( char *file, int line, char *function, int return_code)# V/ l7 [+ j% m' B2 u
- {
; F4 a I7 O- n p2 ? W0 O - if (return_code != ITK_ok)
) `( a0 p% t7 w4 s - {6 J# U/ L4 s4 O+ t6 ?- A6 l
- char *error_message_string;
, J7 O# v$ z' w- ] - EMH_get_error_string (NULLTAG, return_code, &error_message_string);+ x* G2 o) Y# L
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);# F* }) R, u+ a0 H- ?. O
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
1 t* {# T# {1 o% { E9 e! a9 j* W - if(error_message_string) MEM_free(error_message_string);* v) B" [& a) [8 t1 U
- printf("\nExiting program!\n");) ~- I4 l+ q4 v" @
- exit (EXIT_FAILURE); 5 F) t3 y6 W1 L% ^; Z6 k2 i
- }- S' O( g# q* k7 d/ U
- }* O& @* `: I, i$ K
/ \% i" T2 u7 h/ O/ y, e6 E- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
2 y' f& @/ g. f: v/ } - static void check_value( char *function, int value )
; n5 c; N9 ^, F! a - {& ^7 |# c# F+ k/ K
- if (value == 0)1 H5 q, ^( z4 B) n$ Y8 @. R( m
- {
5 }6 b/ @/ ?9 {7 p$ V - printf ("\t%s is NULL\n", function);3 D1 [4 Y2 Z9 t8 F: c- d- ?# N. Q8 @
- printf("\nExiting program!\n");
* W! L3 M& z4 b3 |. m& \ - exit (EXIT_FAILURE);
2 ]. f: I; \5 e - }8 ] R6 L+ c0 W1 x2 ~. e
- }! i( R5 R5 v, K/ X# }, E
8 M/ l9 I/ h' |, ^5 h- ) f, M. J t2 S
- static void do_it(void)
3 Z: l( E* \( V5 o - {
1 m. g7 n4 }3 { - int 6 E# k4 g: \# S0 ]8 i& h8 h
- attach_types[1] = {1};
, ?8 I1 s: | o6 q - tag_t
5 P( O- w9 w n' [6 s% T0 Q - rev = NULLTAG, + A& @6 h2 u# J7 G0 o
- process_template = NULLTAG,
; M) e" N( |1 f' i a - process = NULLTAG;% r7 K5 e3 b, k6 n, g: ~
: W1 C1 ~, q% X3 |1 v- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );7 A* x, v: e# d f* P% j Q5 ?
- EXIT_IF_NULL( rev );
# _7 _4 V9 `6 b7 O- Y - + `# P# @# |1 P# A z7 l- W' [
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); ' D6 d7 r# s! t
- EXIT_IF_NULL( process_template );& S, T, F7 a2 V/ V/ S4 V
. p3 x" k4 y' J' Q- V
0 S& s0 Y/ s3 Q( w$ X( ?$ {; F- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, % d J5 w) \% d+ h" U
- attach_types, &process) );3 n6 M* }8 ?2 {/ B( K
- % h1 C- y8 e/ \0 ?
- EXIT_IF_NULL( process );
. B4 F1 x9 ]- C# o, l6 D - }
, U: v, [) J9 d, c' v$ z0 S; ~5 Z - 3 e9 Z9 b9 L! ?' E& q. N3 Y
- int ITK_user_main(int argc, char* argv[])
8 {! }2 |" R3 s3 g) L$ r8 b - {
4 l6 I3 d: M* h - int
/ K. B/ M# R4 ~9 D; v6 ~- d - status = 0; 1 \! ~$ ~; W0 c/ U
-
9 K$ }" m6 E' m( \ - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
- q+ ]* j- \5 [' t; W - status = ITK_auto_login();
/ m7 w( x6 y: j s% N9 Y -
/ R c% s# j @4 d) s G' v - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
4 Q8 O) e: j% k; {2 R- i. j - else/ C; _# Q+ R# r& C/ M# J
- {
$ d1 |! N9 U6 y% j r - printf("\nLogin successful!\n\n");8 ~* d9 |1 w( i
- ITK_set_journalling(TRUE);
9 ?( U4 g9 n' S. S4 m; w - do_it();
- T# \" J! G/ ~4 g( s) f1 F - }
l: p* c- Y9 U" i9 G/ A - ITK_exit_module(TRUE);
9 T6 h. \( E1 b. H6 f& g - return status;! E- z `9 p" z" x
- }
复制代码
6 y3 J, U% e, t+ ~! A Y" h9 @2 i
- e: e8 b6 ^8 k6 e; _5 F9 ^' p+ a6 r* _+ Y- a1 F, x& E3 z; N4 C& V
|
|