|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
% X2 d/ e$ O9 k% fTeamcenter ITK二次开发源码分享: 创建一个工作流
7 @# O1 L5 `" \0 B/ [3 p ^" Z! p9 c! X7 ^% W; o( ?8 W
- /*HEAD CREATE_A_PROCESS CCC ITK */
! D3 X3 `8 |( a - #include <stdlib.h>
# y5 N+ ]& W' B( |( ]/ | - #include <TCcore/aom.h>
+ i" c+ G! `+ z; R$ L% g$ P! o - #include <tc/emh.h>6 e3 F! C; [. G/ T
- #include <epm/epm.h>
* `2 ^* O) E# d1 {& ~, t; { - #include <tc/tc.h>6 Y% V' J% l2 v L$ ^$ q& I
- #include <sa/tcfile.h>
# `5 h0 s! O: A - #include <itk/mem.h>
- Y$ d) s% O- Q- h0 U. U+ p% X - 3 `+ X2 c1 B1 U" e! m% I
- #define EXIT_FAILURE 1 ) ^, i9 N X4 C0 q M& t/ g
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
% t! ], I4 o$ B, c - static void report_error( char *file, int line, char *function, int return_code)
: P1 M9 a6 v3 b& E! Z6 z2 ~; B9 o - {3 h: q( K) F* g
- if (return_code != ITK_ok)
! O+ F2 \2 k9 i/ `9 w - {1 J; v/ @; x6 m2 R8 g
- char *error_message_string;% [6 @+ v- \/ u2 R( c$ u' v. o
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);
. o2 ^% o" p8 L1 T - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
/ Z# Q6 ~( @/ A1 B: P - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);& }' A8 } E- G- p$ w' r7 j: Y2 w
- if(error_message_string) MEM_free(error_message_string);3 T3 s! n) r3 v5 m0 K- V- @) u2 p
- printf("\nExiting program!\n");
: R4 N2 C( H1 s5 x5 D* S - exit (EXIT_FAILURE);
?. j& y; ^ L8 G% M - }/ g% h% N# R$ N: z2 b( G9 {
- }4 I+ M2 o, Q1 N0 V' A: V& T
- + h/ {+ s5 |7 d0 x, c- V( v5 h
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))- @3 Y. O5 J9 x6 G' x* B- n
- static void check_value( char *function, int value )
% w6 S* N8 d+ J; g! Q0 g0 O) t8 p - {; l; V8 K! ]3 X( \
- if (value == 0)( J* l. E# m5 M& R
- {" h- a! @$ [. b% g5 }0 E1 g8 ^
- printf ("\t%s is NULL\n", function);& c4 Q2 f [0 h. P5 y# m7 \
- printf("\nExiting program!\n");
$ [+ g k$ D! F$ i7 e: Y* d - exit (EXIT_FAILURE); 8 o" Q" I8 O( J5 Q8 R
- }3 S/ f8 d% x- s5 `& C% X
- }
7 w1 `0 T* A; @6 i - ( } x2 f7 I" D0 c* Q7 A: b L
- " g: N6 i8 }3 X0 l
- static void do_it(void)
, v7 b6 S. Y; W% S5 X( y/ A! M, g - {
: F/ H* g8 e8 i/ q0 w3 x - int 2 Y9 `. n$ D; |
- attach_types[1] = {1};
+ o+ M# [. ] C$ e6 r6 X - tag_t 6 J* ?3 a0 C( v9 L! f9 r
- rev = NULLTAG, / Z+ f, {. ? f3 _
- process_template = NULLTAG,
' n5 z1 f! ?/ [6 q( j& t - process = NULLTAG;
3 D$ u, G' M& x, B7 o' \5 \
8 U/ h1 a4 B+ m- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
* T( Y" B* f/ e - EXIT_IF_NULL( rev ); m6 w' c( g( g* n4 ^/ r# g
, }5 _1 i$ P% H" N, w8 D# F- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
+ f% k. E6 I s. m4 o3 S- c/ m - EXIT_IF_NULL( process_template );
/ `; j7 n& ?4 P% l4 c8 E9 r9 n3 M; t - - H; `" r4 T! Z$ \4 B( `
- 7 H+ r0 v/ R( [
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, * @* y: |/ t! Z, W0 z8 Z% d8 q
- attach_types, &process) );
0 f( g% J! v( X/ c* a; X3 G- @ - : y+ Z. f0 z k8 Q. q7 U9 A
- EXIT_IF_NULL( process );
' ]- ?% [. Y; t; w: v - }. `8 o- W7 R2 ~* x# t
- 9 I( g# s' D# H& S- P4 e, F
- int ITK_user_main(int argc, char* argv[])
( P; c$ `. x' P - {
+ s5 D4 p+ H3 Z8 C2 u) ], E3 j3 F - int8 G" [& O4 U0 W
- status = 0; / Q/ [" H @* g8 O5 Q6 Q0 N* @. V
-
4 o3 m1 B! A0 A/ i% I, w - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
6 `6 [$ J) W( u - status = ITK_auto_login();- v0 r0 V' t4 J1 k; I
-
$ Q7 }' ]$ t% [/ v5 @+ J - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");2 ]0 U' a- Z% s5 h
- else
" m0 w* m/ D$ w. Y+ d! p: u% v& i - {! x B4 `0 @% ?- a
- printf("\nLogin successful!\n\n");
! l& s% ^" `. M* ~6 t; f' } - ITK_set_journalling(TRUE);
+ V: r) W3 G* Y+ d) ?# H3 } - do_it();* e4 s( v7 f& u! _' v* b9 S
- }
& n' e* o: t- F1 X( j - ITK_exit_module(TRUE);6 j! q# s {# B' n. m- ?2 I1 k5 c. m
- return status;
0 A5 _' g7 G( ~7 y/ w - }
复制代码 - W: u0 ^0 r0 x2 j+ U' Q% |: d
9 t2 s1 T, J Z0 ~9 M% P$ H: B* u' Q. M9 q
|
|