|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
4 x5 D- V0 n( z- F3 w+ A6 t
Teamcenter ITK二次开发源码分享: 创建一个工作流
( b m( G% n2 g( g$ x' E1 T* y4 K( C- l
- /*HEAD CREATE_A_PROCESS CCC ITK */9 d6 Z/ P v" H F9 m
- #include <stdlib.h> ? n2 K9 c9 v! _7 U
- #include <TCcore/aom.h>- e5 i. Q# U) f! F- O
- #include <tc/emh.h>
0 w( W, n2 f' X# X% I8 @ - #include <epm/epm.h>
2 F ^: I8 Q( r) A* B - #include <tc/tc.h>
% C9 v. t7 K _8 K! G0 E3 q - #include <sa/tcfile.h>1 k$ b3 g& \; @+ j3 C* ~& k5 U
- #include <itk/mem.h>
8 K% N f" \' x4 J! O! H' ^! J& u0 f
7 R* S% J% r+ v' W: k- #define EXIT_FAILURE 1 % p+ f4 u4 I5 M0 p0 _
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))5 b( o3 x- R$ X6 J; g) v- t S
- static void report_error( char *file, int line, char *function, int return_code): s! B- M4 \8 H/ L* v( I( V, e/ M
- {0 i3 P: u- L. n5 u1 o$ t8 n7 _$ @
- if (return_code != ITK_ok)2 A8 v+ b( Z* N: E! P9 `- h% w
- {
/ {. i; E. E$ b0 z+ S# ]0 \ - char *error_message_string;
% ~1 K' q5 [$ |' q5 z# I. r: X - EMH_get_error_string (NULLTAG, return_code, &error_message_string);" x1 q# f6 b/ a% G, z
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);" v9 f" l3 q2 ]1 G' A
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);0 u5 Q' c" _# v: |
- if(error_message_string) MEM_free(error_message_string);
9 q& \- S" |: U6 y7 t$ H2 z - printf("\nExiting program!\n");
& N" }' o/ o$ @5 ]6 A1 ` - exit (EXIT_FAILURE); - I! g6 a' `) X% z# K
- }- O' r$ B5 d6 b& m4 F
- }
; a4 a* b8 x" N& ?6 w - 7 m: n3 H) a( R5 P4 U2 g
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))0 j6 \, V+ W8 J, J; [" S7 S
- static void check_value( char *function, int value )
* I) e4 Y5 v) S8 l' m - {
9 E" x) Q' h5 S - if (value == 0)9 G, b ?( x5 r8 `
- {
9 M8 H. O6 A2 o' p4 x5 G% L1 V; u - printf ("\t%s is NULL\n", function);
- @! D( v3 e7 m2 P) W3 O: \6 E0 D) H5 W - printf("\nExiting program!\n");
4 {& R- r% s/ w+ l; v& S - exit (EXIT_FAILURE);
6 y. y( x- c( P7 G4 J) F+ ] - }
4 [& M8 l" a8 W, F! U B - }
& j5 p3 _" n ^
) y& \$ t# C3 Q
% v7 C: d# i% |1 M- static void do_it(void)8 x1 \; ?/ w% q
- {
0 O; N6 I1 J, |' M, Z - int 8 a/ o y! i: z3 E
- attach_types[1] = {1};
, x3 A3 D* U- G - tag_t
$ W5 N! V4 E8 z. I% ? - rev = NULLTAG, : O) P! y) N! y* O: e) {9 }* v
- process_template = NULLTAG, 8 s9 n4 I0 o3 X: \5 G! O
- process = NULLTAG;
5 C/ K f4 j, V; m6 Y& ?6 N- G6 H
( o* W# U6 t+ q& K8 \1 v' [' ?- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );' S/ L2 F& x5 ^9 `1 O+ e( k& l
- EXIT_IF_NULL( rev );4 p7 B* b3 ?4 Z
- * i+ w7 A. L3 l D
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
4 s1 l0 Q: Y( u5 W8 |4 \ | - EXIT_IF_NULL( process_template );
* @- ]. X: W0 q% m9 |7 P" o% @1 P
+ d9 }* Y3 R3 P( T- z) X
& n; s% q$ e! f/ _- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
4 p$ O, a( Y5 C5 z8 h - attach_types, &process) );
8 @6 G- C: Q/ D" f; J, ? - % X9 Q8 \4 {5 B2 ]6 s/ Y8 ~9 w4 x
- EXIT_IF_NULL( process );4 x2 y$ |# |1 B" Y( h4 P0 o1 M
- }7 l. }. m$ P" {
- 3 V. e. f9 o( ^) {/ i) o
- int ITK_user_main(int argc, char* argv[])
9 b0 V* P" @- Z% i - {$ Z& e4 _- x; S# _+ M: G
- int
8 L' j$ V1 T' n/ a6 R/ v - status = 0;
5 M5 r( F* e5 T; ^$ H/ ] - * B1 l- K0 w; D: y! I
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
/ t: G& H1 P) n1 J8 ` - status = ITK_auto_login();
2 l. z: w# g8 o3 H r# l - # a# [6 X+ F# \8 }8 Z$ v) F
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");; P1 L( ]. U) A& F+ V& ~! E* C
- else6 s, P+ ^! C5 V1 Q7 ~9 ^
- {( H- w# S8 a. \
- printf("\nLogin successful!\n\n");
, d2 k/ {( e! `) m/ i - ITK_set_journalling(TRUE);9 v: z- ?: u& j/ y' F" R1 _
- do_it();3 [# e5 E* N2 t9 |5 {, O4 D
- }
3 p @9 R: B. Q$ t - ITK_exit_module(TRUE);
. E# U+ Y3 `9 O$ R. Q0 @/ ? - return status;1 U' p S& H t. f) i
- }
复制代码 , ], j" n7 E: c) Z0 l3 E, A
; a- \' f' R1 k6 \3 g6 F$ w* p! S
|
|