|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
6 p" I% a- j( r" t/ ?6 s+ F& n' @
Teamcenter ITK二次开发源码分享: 创建一个工作流
8 r; G' }6 {& E6 m" m9 F$ g Q- Y, `5 c s1 h4 K
- /*HEAD CREATE_A_PROCESS CCC ITK */
6 R* e. Z: D1 W# ~ - #include <stdlib.h>
, d9 C5 E( l) Z! m - #include <TCcore/aom.h>
7 w1 W" a7 `* p- r0 b2 j. A - #include <tc/emh.h>1 _5 _# ^6 X4 h& W) b
- #include <epm/epm.h>% r$ d9 o: b$ i% }5 P
- #include <tc/tc.h>
# f+ n( B7 w D6 Y" r4 n - #include <sa/tcfile.h>: O$ m2 K$ g0 f) R5 Z
- #include <itk/mem.h>
, A4 K5 f0 w5 `5 }; p - ) J3 F# G% {; K; ~9 V1 H, p5 z3 C
- #define EXIT_FAILURE 1 9 S' @: _- E9 v2 e* d* n
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
; D5 X, E* Q4 U - static void report_error( char *file, int line, char *function, int return_code)" G$ T/ L$ a; b+ U! _
- {
/ h- I+ t) m0 b8 o - if (return_code != ITK_ok)
, v5 J5 x9 R: W9 f( c - {: I: F9 \4 `. C
- char *error_message_string;
4 e W! V" o6 ]$ F" k: j1 e+ U8 l - EMH_get_error_string (NULLTAG, return_code, &error_message_string);& W; H$ |) G2 j# c
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
' s" q. Y/ y% J5 W, v - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);0 X* q2 [ y( M+ W
- if(error_message_string) MEM_free(error_message_string);
+ y& d$ J& }8 O2 a( E% U7 y - printf("\nExiting program!\n");
6 _7 Q2 n3 x# ^/ @3 u+ A5 h% ^ - exit (EXIT_FAILURE); ' V) s1 E; y+ }! l) \+ h
- }
; c: U3 b+ U+ U& Y$ w0 a7 u* | - }
7 O; x5 Z( r8 b* u/ C - 7 X8 f0 x) I) e" a( m3 G
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))- [+ E3 X, i: p* d+ |
- static void check_value( char *function, int value ); w" W7 G$ s. I3 Q, M
- {
6 z5 @+ |" P4 h4 L( c - if (value == 0)/ O! ?/ \+ x. p, X
- {& O8 o R' W7 g" A
- printf ("\t%s is NULL\n", function);: d* O0 @0 R- R' g
- printf("\nExiting program!\n");3 s7 j/ x) y0 F6 H9 \4 E
- exit (EXIT_FAILURE); % y2 t" t9 L( G3 U( `7 v% C/ ]
- }/ z7 D: K2 Y l0 `* s" m
- }
! f# X( f+ A- X( Y3 W0 G+ l' w6 t# \2 O6 }
* N# j' i: q- v5 M% s3 a/ B4 a* @- ' w; J* k0 l! x V2 i7 c
- static void do_it(void)
" A: F2 e8 a } - {9 \' H8 _9 I. Y
- int ! Q" ^1 B6 u8 K4 p% m: Y
- attach_types[1] = {1};5 ]' w% D% N1 _) m3 m' b
- tag_t
, w. @% ~. W5 Y; v0 ~' I - rev = NULLTAG,
9 p" Z( O g$ J. F; J - process_template = NULLTAG,
% @% e9 H1 Z- ^/ ?: v - process = NULLTAG;5 l) b+ \5 v1 i8 G
. Z. r3 ]8 z6 O- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
4 U3 I! I) y/ q" ~9 F - EXIT_IF_NULL( rev );0 ]& f/ a+ Z. V% I
- & d5 H3 B s8 D- O
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); ' W( B: S9 ~+ N) r' s
- EXIT_IF_NULL( process_template );
" b# `3 Q( |7 g9 W2 C - : f1 o3 c6 q! [8 \4 v
- + z1 v0 H& [7 b1 ^, k }7 W4 [6 b
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
1 I, S6 a6 j( W) p4 }0 d _- Z - attach_types, &process) );( Q. Z3 n7 D6 \) P/ }
- / B4 ]! S J( Q7 \0 z: p2 q
- EXIT_IF_NULL( process );
/ d9 G3 a/ H3 M" g* [" c - }
6 {/ C2 z$ M. C; {# ^ - 8 h) P: W. a' ~0 F: }$ u" R- e
- int ITK_user_main(int argc, char* argv[])
) V1 q+ T" \! x+ B9 ]4 F* o' Y - {& ~6 g% N" {( S r3 J
- int
% O+ f* W' C0 m! s+ B2 V - status = 0;
7 W% u. t( ?# A1 d. X -
# U5 D+ d. _& C. O* r3 P# z5 n5 `- j1 a - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
, z" `. H# _" N9 P2 D - status = ITK_auto_login();9 H6 K, @5 F; n
- & m$ O! d0 U. g) q w1 r: U
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");8 v4 Z- q: i. G
- else
- Z/ \* s1 i2 v% A - {" a' R8 z# C) t% F8 j' C; @
- printf("\nLogin successful!\n\n");
2 y# G7 {, C! h' E4 u. y, |- I - ITK_set_journalling(TRUE);
" H. C+ D3 X1 ?) G: j - do_it();7 r1 l& X; Z7 K* ?
- }% B/ a6 R8 F" q. N
- ITK_exit_module(TRUE);# I# v: Q/ E3 F3 r) l
- return status;0 I. D5 J% q4 ^: ~3 T
- }
复制代码
, n+ T3 ^( y# ?' s0 @, O; K$ c
$ N6 H# N' ]+ L0 Y! Z2 B
7 W* w, [: c. F" [: \# u: ] |
|