|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
8 U I( f- j- w2 a. b
Teamcenter ITK二次开发源码分享: 创建一个工作流
8 F! V, a& v D) M
! ^6 A7 N* p; s/ d6 X. v- /*HEAD CREATE_A_PROCESS CCC ITK */% b) B( r% S# D$ g$ V
- #include <stdlib.h>' Q6 z: L8 J! }4 v ]& p
- #include <TCcore/aom.h>. m$ X; e- n6 r; [
- #include <tc/emh.h> z( P* K, L( }5 f
- #include <epm/epm.h>. O2 {6 ?" D+ s9 D/ A
- #include <tc/tc.h>
$ z: u4 [) j0 b - #include <sa/tcfile.h>* d+ P+ j# o; X. T' Q$ i7 F# c
- #include <itk/mem.h>! n; a# H0 \7 c1 e: V/ F* P) j8 t
' x) Z) d: c9 K* G& f& [) o% T/ O( K- #define EXIT_FAILURE 1 3 R1 q( x5 L, w
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
" R/ P Q: D7 z0 k% \6 g - static void report_error( char *file, int line, char *function, int return_code)
$ C" s: S- e& P5 o9 k2 D - {
5 z# s# c( p. b+ p/ ] - if (return_code != ITK_ok)3 s" A; v$ o) p! e$ }) c
- {6 b' n3 ?( @7 R0 ^0 {; \/ k
- char *error_message_string;0 z8 U6 P6 A4 U7 ~
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);: I9 i, G Q# o4 |
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
+ Q7 X' @$ V3 t - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);- A2 J$ I; E. y8 C7 O
- if(error_message_string) MEM_free(error_message_string);
- c9 m# }) U& {' S" h; H, [) v, \ - printf("\nExiting program!\n");
) D7 D' y) \" F - exit (EXIT_FAILURE); $ x/ U' s' v6 V3 p( b# q! E
- }2 ~4 e1 b) t! Y3 C% {# ]
- }+ \$ ?: X: O* g) ~6 k
- 2 u9 f/ J) e8 R6 j$ I
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))4 v! \& G6 Y6 P1 {& S0 V
- static void check_value( char *function, int value )
# O, L7 d' R; I& h& t. k3 F - {
# b g) t# G7 w6 M G' a1 Y - if (value == 0)7 h: l# U' ]$ n. p8 e
- {2 M ?& h L4 y, M* a: ~
- printf ("\t%s is NULL\n", function);4 C; q. @- ~9 D% O% v: j
- printf("\nExiting program!\n");4 a1 D' _8 I& {& k' j
- exit (EXIT_FAILURE);
7 O% y" X: z% J9 [% F3 m - }
. r8 J! h# n3 ^ O4 _1 r% S - }1 X7 T: k+ W( ~0 z1 P1 z# K' G, |
- 4 Q- f* _/ {: I% s* A3 |
+ N. o# B- l1 y$ Z$ ?- static void do_it(void)8 Y- J' p# {# r/ C
- {
( R% g% l: A- a& B - int
0 t' m+ b0 q1 c2 n- J+ B - attach_types[1] = {1};
' Q1 v: ~: ^- Y% K! B; N+ Q - tag_t 8 n- w- q% \; C6 o f
- rev = NULLTAG,
9 B/ w2 Y/ Y: @, T2 R ? - process_template = NULLTAG,
* r4 c# u+ X# k- t - process = NULLTAG;
$ R3 D" v5 h& }4 p- R$ S - 8 G- s5 y' P" p! W2 |# k+ ?. m
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
* w) Q' z8 M1 D- O" V - EXIT_IF_NULL( rev );/ h$ G" z( t' ^$ o) ^
( D6 C1 l' E7 a* B) B: j, g- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
1 {' o0 q/ q+ r _4 _" c - EXIT_IF_NULL( process_template );: k; H# G. q% m. j" d, V9 F
- ! d0 Y. m9 ?) j4 [. L7 z* @
8 M; \4 R: ]1 t2 ]! h3 s$ T4 g- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
6 T% N5 s: Z( |; t3 X - attach_types, &process) );' z: B( P1 C1 q3 H
v+ X0 I# E$ U8 u% k1 ]* l2 T- EXIT_IF_NULL( process );
- i" e' {+ J- N - }# k; a& o. S5 R0 M
- . U, O) x+ E& y9 f3 [( R
- int ITK_user_main(int argc, char* argv[])
& B) D {; g$ \; ^ - {
) v" r' I+ x6 r3 ?6 p* H3 G% [ - int/ Z( H$ e; ?4 F4 ?7 g4 d- ], Q6 A
- status = 0; " @) k- s R+ ?( Q3 s4 M7 c
- , y: G8 C+ R1 {8 g
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );( N4 x; D4 g* ]5 M* Z
- status = ITK_auto_login();" Z& \/ |( T, w* I! A
-
" a' W# Z% o$ W, n" L - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
/ Q7 x2 g6 R/ R+ { - else
/ |: C8 F0 m8 U$ \ - {; q- }1 {9 H) r0 k" d" }+ _9 j
- printf("\nLogin successful!\n\n");
* W+ ?. \" |7 [ - ITK_set_journalling(TRUE);0 B( H0 I' y3 A8 S: p4 |4 O
- do_it();0 L3 ]/ }$ R! q$ R- w& \
- } z9 q- z- P: F8 h, o. i
- ITK_exit_module(TRUE);
. k' \, c$ k! O, ~8 N( k - return status;
4 Y6 ]: k6 K3 R5 P& A8 Y - }
复制代码 M$ H8 ]' \; d
7 X8 p# R0 k, e" S( J# H" b6 K
# Q+ e3 Z, g5 P" A9 s |
|