|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
( T1 b2 S3 ~4 Q/ T
Teamcenter ITK二次开发源码分享: 创建一个工作流
; z. S0 ^% o! Y; a9 o( l' U
7 A; C9 S5 \7 n D0 D3 Q- {6 b3 Q. S- /*HEAD CREATE_A_PROCESS CCC ITK */
! ~' L0 H3 _; o# z+ d& j - #include <stdlib.h>9 z Z' l) r( @7 T: U
- #include <TCcore/aom.h>
; \, S0 [1 ?9 _% p a; T9 x: c" Y3 Z - #include <tc/emh.h>( M3 f& d+ D+ h( \
- #include <epm/epm.h>" i4 V) q9 A- ]$ [, u7 y
- #include <tc/tc.h>
. i8 V" y: |" k5 c - #include <sa/tcfile.h># g4 y, B; q1 p& K! F' x* v
- #include <itk/mem.h>
" Z E) B* U9 D& c% l, F) h. Z - 2 U8 ^0 [& Q1 d) K6 ]6 ]
- #define EXIT_FAILURE 1 - [% B2 M6 [# U
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))% [- G9 ]% W4 t
- static void report_error( char *file, int line, char *function, int return_code)1 T! ?) C, b# {5 d0 y
- {
0 B7 |) u {) d1 L; t1 D - if (return_code != ITK_ok)
3 u; F9 [6 y0 v, } p0 [8 h - {1 q* ?# I- m8 `
- char *error_message_string;
8 S; Q- l( u! W: ?3 A2 [ - EMH_get_error_string (NULLTAG, return_code, &error_message_string);
$ |: F( C6 V+ {3 q- b; K - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string); p2 Z3 W4 R( Y& n
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
" s4 K7 q9 N1 P - if(error_message_string) MEM_free(error_message_string);
) g% ^9 M0 W; A% \9 F i - printf("\nExiting program!\n");% p3 J9 Z% p0 Z" o- ]! w
- exit (EXIT_FAILURE);
" e) }+ S5 ?7 W6 b - }4 N7 k5 J, V6 z9 o+ N+ E
- }7 ~& P3 o& f; y' I9 v" \7 P
. w7 `$ |1 l6 f. `9 k- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
+ x- m, c& m/ H& ~& g - static void check_value( char *function, int value ): G$ o4 J2 q% @ g: C9 i- r% y1 F
- {* y) o6 {) ~) X0 @! @7 F# K
- if (value == 0): v! M" Y! s' F/ h% a
- {, b* r$ G5 t; B0 q- {# ~5 n7 ~" E
- printf ("\t%s is NULL\n", function);/ P1 k8 x/ \7 J, B9 q
- printf("\nExiting program!\n");$ p8 P. o7 {. C3 o; _
- exit (EXIT_FAILURE); ) d7 I* l. B. G4 t: Y4 U$ c
- }
6 O8 A% _: V2 I! [ - }
% ]2 M% G6 I* V - ) P- Q: F6 Y7 ~: w
9 ~% F' B4 M: x/ e- static void do_it(void)
. n, f$ Z( q, P - {
! E2 s K5 o& [. _( \7 |7 y - int
" C0 y2 X8 W& H! B( h - attach_types[1] = {1};3 w7 M, Z* j0 v" o$ x$ ]
- tag_t
: g5 e. I0 C* O& y0 f! F - rev = NULLTAG, 4 A. r7 {. b" t- `2 F; ]
- process_template = NULLTAG, S8 A! x/ y" R) a
- process = NULLTAG;
* e- m' S8 a2 {. _0 F
* k z1 l ^( N8 n- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );) P1 Y: ?. T4 x4 S' N0 m! ?' U+ m
- EXIT_IF_NULL( rev );
" Q7 W, C+ r3 ~4 u/ Y+ h& c8 ` - ) ]- [8 T) c; T& a; z
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 4 x* b$ K# d5 H- p: [7 J9 x
- EXIT_IF_NULL( process_template );
! l6 S5 V6 \ |/ A# g' t - ) ]! \- G; _. S X8 Z" G- l
. y- V) b: r9 a/ f- `. ^8 P- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, $ O3 \* O" [% d
- attach_types, &process) );* l% ?4 u$ z4 p
- 7 M' p% v+ Q) ]
- EXIT_IF_NULL( process );8 g `; |' R1 L# `' M- @* r, y
- }
; a( S2 F5 V5 h5 t - ! k7 J' Y( S, R9 x4 ^
- int ITK_user_main(int argc, char* argv[])
$ q8 S' p# W5 \+ E; E - {+ L$ L6 n X* p
- int5 N+ P) @; J5 {3 Q
- status = 0; ! {9 `7 ?- Q' p- D1 G- ?+ y
- N" g x* ^ `2 H
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
, F2 J D. O! [! L - status = ITK_auto_login();
- o/ b$ y+ U! r( k; ^5 X -
* K, d) m% ~2 C3 X# J - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");# _$ M, c1 A/ j
- else
0 M1 [5 z. f+ p9 g - {
& ]8 W# `- F' ^5 q0 G! V. u7 W - printf("\nLogin successful!\n\n");3 _' `& ]- o) b% w I+ u9 K- u
- ITK_set_journalling(TRUE);
3 A$ j' o1 e B3 p - do_it();' m1 b/ r& p3 o+ Y4 C$ N
- }7 Y( I$ }9 f4 n0 f" e8 B1 ?$ w
- ITK_exit_module(TRUE);& J {3 F! U' Q+ \
- return status;
# Z2 U1 y7 q7 Z# Z2 T - }
复制代码
6 O' U, v$ {9 M5 h/ q6 o2 r9 D0 @% L9 Z
H4 X" P1 ^) g9 r
|
|