|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
' W& x" q. W* h
Teamcenter ITK二次开发源码分享: 创建一个工作流5 x3 P' R" @; C: D+ h
! A+ N; M) ~0 }8 q, T7 j- /*HEAD CREATE_A_PROCESS CCC ITK */
s4 j3 B5 f. L" ]; i - #include <stdlib.h>
" Z: h, s/ b- @& I/ w2 L - #include <TCcore/aom.h>9 ^3 t) K+ r2 g" G: n" ^* {* q
- #include <tc/emh.h>
+ V7 C% r/ L2 a- Z T1 I) C - #include <epm/epm.h>
, @. R( _" Z! H1 H- b0 S( ] - #include <tc/tc.h>$ H( S+ G1 j8 `/ s- A/ U4 o
- #include <sa/tcfile.h>
7 x' u: L* D& }4 Q - #include <itk/mem.h>
4 b- Y1 J n4 m0 T( | - ' w+ j0 z% D/ `
- #define EXIT_FAILURE 1
+ T9 x0 T. @ ~( I - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
$ {5 m: n' Q2 ?* k/ c3 f - static void report_error( char *file, int line, char *function, int return_code)
$ r$ \* _2 [* g9 u4 D: T* X4 v - {
, Z. ~8 R" ^7 S% O" E2 ? - if (return_code != ITK_ok)& K! M6 d! I3 _! m/ P
- {" O: Z2 v5 A5 a1 i, f* p4 g
- char *error_message_string;
! q4 h0 |& `$ p/ q8 [: m - EMH_get_error_string (NULLTAG, return_code, &error_message_string);! l+ x) P" N& b0 R' H" ]
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
% }* j: m5 n# T3 Z: m* s& k& m - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);. J: y4 y# R( o0 g. C
- if(error_message_string) MEM_free(error_message_string);
3 X v! l5 p' P6 L8 m - printf("\nExiting program!\n");$ i" Q0 | K |9 F7 P' t
- exit (EXIT_FAILURE);
, J* ]4 i8 Y a - }
K6 D/ Z/ e2 O# |$ J- B - }8 {" |: D3 c- Z6 g& M/ J# E
- K0 T7 |1 H% N- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
$ o% E" Q. w1 ^# |7 o' o# o1 Z - static void check_value( char *function, int value )
; L/ z4 ^' Z: \$ ^. j- _ - {
" M8 [9 T& Z4 w8 \' ?2 u - if (value == 0)
* J: U$ \" y4 S# I: |3 R( O5 j - {1 `1 H% \4 G2 ?1 v& H5 G
- printf ("\t%s is NULL\n", function);
" P/ r$ D6 i, z$ |" T/ w" ^: e - printf("\nExiting program!\n");' m$ P- N, o1 b) O
- exit (EXIT_FAILURE); $ e; {1 T, ~1 E/ T
- }
5 Y# @; X2 `9 ? u* @# d - }
/ g, c, _4 C' I/ D - ! @) O9 a" Q; e3 j% n- @, r( W3 k/ P
, n9 p# n) c: Q7 [1 n- static void do_it(void)1 t- j: d* A9 X ~$ u1 m) n( F
- {
" K" p2 @8 s3 u0 o/ ] - int 3 C3 d+ y; A. Q# o9 c
- attach_types[1] = {1};+ n7 L' X: R+ ?& L1 b4 P& V+ t- M
- tag_t + U2 ~4 ]3 C1 I" R9 s: R
- rev = NULLTAG,
) T& Z6 Y$ j2 J: T7 V - process_template = NULLTAG,
6 h3 P: m1 f# M0 Z; \! K+ K - process = NULLTAG;5 q/ {7 [4 o1 N" j1 E4 N9 F
- + u' {$ i8 Z) v' g9 Z- a
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );" Z7 E) v/ p) C
- EXIT_IF_NULL( rev );# f2 G* y+ }; Z \
- ' k9 t8 |& {( O) e2 m8 G5 _
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); ! q# F8 O$ \+ L2 E4 v
- EXIT_IF_NULL( process_template );
M/ l' `' P( M
; [. C. y: S8 w; x2 x Z" o
7 V2 p1 ^& Z/ P! q5 G6 F6 m O3 t- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
. |& B; e/ i, V: b - attach_types, &process) );
; ^" F4 q, H3 `2 ^
; Z( U' `8 x ^0 `$ {; s w. n- EXIT_IF_NULL( process );" z7 A2 ], M( Q3 F( n9 a9 d' c
- } K5 ~3 }! e: o/ S" L. o
; b' n- `; o5 E8 `7 b8 i' d& g# i- t- int ITK_user_main(int argc, char* argv[])
* t9 A. ]# v8 k - {
+ g% ]% i; e; P+ J. N - int
7 t% j6 o4 B, T; @1 }8 ? - status = 0; # r) i" C/ q: |( p5 x/ ~4 l$ l
- $ R/ I5 t5 n$ z9 s: ]% x8 q7 j
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
5 }5 I& U( R2 D o; T - status = ITK_auto_login();
) u2 N" w J! m - . m- L k* V# R
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
) O3 l- | }0 b; r* D% ~! V' h7 { - else
; I/ N8 Y0 N; l - {
/ P) R" ?5 v* b" u/ O; U! j* D - printf("\nLogin successful!\n\n");5 n% s" [1 o3 i/ q
- ITK_set_journalling(TRUE);& f1 W9 x5 @4 b7 z) V* n
- do_it();
; \. z! O2 \: c3 q& f4 _ - }+ y3 A& i4 V K8 F/ ^+ k4 U
- ITK_exit_module(TRUE);7 ], w$ K) [$ {% |8 v! Q) A
- return status;- p4 Z" c5 [/ p
- }
复制代码 # E6 Y* e. `0 p' E
& Z0 w+ r! z& R
2 Y, }7 C% U+ ]' G& h3 X/ v |
|