|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
0 q# A q4 A0 z8 ]" U
Teamcenter ITK二次开发源码分享: 创建一个工作流, n) j5 g: f$ f5 M, f
5 | | S q2 U% g2 Z
- /*HEAD CREATE_A_PROCESS CCC ITK */
6 a; i, f, B g6 a% I0 F, d* D - #include <stdlib.h>
! U6 D4 W' D9 ]. @& @0 w. d# ^ - #include <TCcore/aom.h>
2 Z3 h- h/ C7 U# s, m - #include <tc/emh.h>
& S9 t: z: V; ^ - #include <epm/epm.h># O |0 O6 |) j8 d/ Q
- #include <tc/tc.h>
' Y3 X! P6 M2 P* k - #include <sa/tcfile.h>6 R; \3 d# f' a6 _' w7 K
- #include <itk/mem.h>
5 J, C' g, }1 M. Y
: ~1 G( X8 {8 J# p: U- #define EXIT_FAILURE 1 8 W- `( r- @. X& a7 n* D5 B
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))/ ?7 t f# h# q# U8 `% M
- static void report_error( char *file, int line, char *function, int return_code)& K; z% ^, g. R1 D: F
- {2 L% n1 [% f) S$ L
- if (return_code != ITK_ok)
/ a4 ~8 \5 g! x( ] - {" B+ ^5 r2 V% D% j' ]
- char *error_message_string;9 o0 p, E! j4 A/ x+ I
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);
; U' X- T; a& p" O9 w/ e- ]! v - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
, c W) \! Y9 h8 p - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
0 S5 a' X$ @5 g1 i/ V' o) Z* H/ U - if(error_message_string) MEM_free(error_message_string);
6 }" W8 d( Q3 \4 |4 N+ u - printf("\nExiting program!\n");
( l- J, L" M9 { - exit (EXIT_FAILURE); 5 x7 `9 r8 X, E% r. f: I' F
- }
" E/ h: G7 ]8 L - }% r+ U `6 P3 s4 a# x; }1 u
- + \$ |2 X5 O. U+ n
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))5 f. H/ F4 N0 d0 S+ _- x
- static void check_value( char *function, int value )
1 W, \. C$ t0 H1 B - {
+ a6 i% P8 p4 G2 d3 b) l3 M) { - if (value == 0)+ `( r, z" C; |6 h# g) g6 X
- {, i8 o& j/ \3 ?0 }
- printf ("\t%s is NULL\n", function);4 | B: R1 B: W& A. F
- printf("\nExiting program!\n");7 a( N/ ]6 e/ a5 ^/ d' S) `
- exit (EXIT_FAILURE); 7 T6 {% f' b( O9 e e/ k
- }
$ s% [8 o1 C/ P8 O, F9 g2 @2 v* v - }1 b, ?4 ]* |8 e( b
- 8 @7 x# H+ ~$ N, E0 V5 X5 O# E5 j
- ) z9 a. V' I5 ^) e
- static void do_it(void)5 L( I/ V6 i# S
- {( m+ L' q: I5 a0 C
- int
% l) X) F3 v) i* \ - attach_types[1] = {1};9 A7 R: Q+ a) n# d
- tag_t ) `. {7 e# u% ?8 C& O0 {/ d
- rev = NULLTAG,
. U6 @* T9 h V - process_template = NULLTAG,
! b7 {. }( k2 q }) y - process = NULLTAG;
" G2 Y' O5 `* b+ J5 s S+ u8 [
# B' ~: N5 z) ^0 O5 a# \- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
. |4 D! _1 N/ T" f: R - EXIT_IF_NULL( rev );& j! p( P3 i3 R6 a2 R1 k
" g, b* T; N- E: g- A! Z- g0 i- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
) r" C7 s, q7 z# Q. |# p - EXIT_IF_NULL( process_template );& g2 w* o% g: w# d) R3 f+ e
5 o! A: g4 Q6 r5 Z* c- e* A- + T7 w2 o% s9 c& ?1 R
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, ) d. z4 g p/ L+ x
- attach_types, &process) );
" m. U4 E+ d6 k1 w4 z - , a2 P1 t+ i% S- @
- EXIT_IF_NULL( process ); V+ E& r. V- e' V' |1 q
- }
: v/ i9 e. R5 ~, P* ?& g - 5 ?& z! O; f3 E0 x4 Q( ^
- int ITK_user_main(int argc, char* argv[])
' ~0 j. Z/ {* o" C- j - {
4 g9 C& S& d: ]& ` - int
9 P7 `3 l) H$ P* W9 p( J3 Z) ? - status = 0; 8 |- j* D; N" s" m
- ! n& g; a2 x/ R. }) ~0 i/ C7 c- m
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );; f& P2 s. Q8 k
- status = ITK_auto_login();
2 b& k& Q1 Q3 Q7 ? j# k - {! r" b& b R
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");" F) U+ r w( K( s4 |4 ^
- else' h. E, X: p7 A1 w8 j
- {
2 O' T7 k! D3 {# b- @ - printf("\nLogin successful!\n\n");: Q1 `0 I, A6 R
- ITK_set_journalling(TRUE);
+ C/ Q7 i( r/ @ D - do_it();
; s0 I( }2 v4 } D' a9 C - }/ w5 L2 G1 z2 V1 U6 S
- ITK_exit_module(TRUE);2 F: h+ a. S; I4 p
- return status;
4 Y* w$ z) N2 o$ J8 X# E- x5 X - }
复制代码
& j& w2 ^( R9 I7 o- H$ F! J7 f/ [ p: _- j( Z) f- v' p% _' d; E
8 H: P: C- {' `" L |
|