|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
7 O' i* ?+ n* m: ~0 f+ O$ \
Teamcenter ITK二次开发源码分享: 创建一个工作流8 @, e- g; H: n
( Q+ { I0 u$ k P7 _: W) y- /*HEAD CREATE_A_PROCESS CCC ITK */
/ \7 u& u0 x4 ]& K2 j% D - #include <stdlib.h>) o/ c `' N$ @; R1 e
- #include <TCcore/aom.h>
* X) t6 J- ?7 F4 M, E - #include <tc/emh.h>5 M3 J' O, G+ p
- #include <epm/epm.h>
0 K/ l# W" I! J - #include <tc/tc.h>6 j% z* X3 m) E9 }/ O n8 m
- #include <sa/tcfile.h>
, M3 t: A1 H7 s+ M1 A - #include <itk/mem.h>/ |7 @7 R3 m A T+ J% L6 Z
- : x1 s' A- O- D* y
- #define EXIT_FAILURE 1
% ]+ { R: g. p! X P - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
3 a6 }) P6 C1 F/ ~2 m - static void report_error( char *file, int line, char *function, int return_code)8 A( `( [ C$ N9 r# e# w
- {
! h0 I* q; ^9 P/ [. W+ x' N - if (return_code != ITK_ok)1 Q# o. \) f' J: a3 [5 w% ~1 w
- {# \$ n* D* l7 q' R9 a
- char *error_message_string;
% S; a3 n( X8 x7 r1 w; | V. u& i - EMH_get_error_string (NULLTAG, return_code, &error_message_string);
! P! E9 m' w: m c - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);) u) x3 `* T. B7 t0 }
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);; ^) L+ L( I$ S, `* O
- if(error_message_string) MEM_free(error_message_string);
4 j0 ]7 _/ Z. P4 m - printf("\nExiting program!\n");
0 N$ h/ x0 T' J; k - exit (EXIT_FAILURE);
' j7 S( I# W& n1 K- h - }
% z$ s8 z! h. M2 e - }+ ?- P1 ?6 I, ^9 q9 B. A! R' l! _' V
4 b- S5 c, v0 ?' Q1 a- #define EXIT_IF_NULL(X) (check_value(#X, (X))) p7 e9 q% E9 j6 B" p8 M( a
- static void check_value( char *function, int value )8 t2 }0 @. e9 X6 B9 m' V
- {5 x* t$ r/ \8 R3 D! x
- if (value == 0)
$ W* ^; f# Y. |0 z: n/ u- }, G3 @! K3 ` - {! ], e: W& c- F+ g* p
- printf ("\t%s is NULL\n", function);
, V& x. B- T* x" E# S) o+ @ d - printf("\nExiting program!\n");
- i; @8 Y: a; I+ p P4 F - exit (EXIT_FAILURE); ' L. J* Y' ~ y7 M
- }
, w5 Q4 i% C/ `6 F - }
9 q: y* p) N7 W - 9 n, i+ |" J! B2 e6 B! m4 w; n, U
- 3 H/ r/ m [) Q: D$ W( K! A. C
- static void do_it(void)
+ w7 ?0 ^% a0 r - {5 x) I1 H7 s- J% S( {: `6 {
- int
* m. F1 x9 R) B) W1 g - attach_types[1] = {1};
+ [* D* r4 |6 I% A& N% u( P - tag_t 0 t+ ?4 J, m) J( T
- rev = NULLTAG, + \& V- @7 ]# E! O! t" h- }1 `
- process_template = NULLTAG, 7 T; M8 `0 N8 l0 f! I9 N
- process = NULLTAG;, ]( M; m: z' M3 J1 a
- ; }( V3 a% [$ Q% g/ ?, v+ f2 ]
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );* w; [0 m, w5 E' U, i" A! h
- EXIT_IF_NULL( rev );) w+ w+ i) o5 B b' }( X) _/ b' g) j
) D u1 n& Z1 E, Q9 o( y- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
) x, K9 x; v' R, z z - EXIT_IF_NULL( process_template );( }0 P6 R$ H2 P+ n1 i6 V
- : k7 G7 X* e! m, ]; T
- - g+ F4 B% T. }- t8 j- W" A
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
# a& I3 X& h+ X6 n - attach_types, &process) );: T$ U& H5 S3 L0 @% K! B9 W( K' Z; `
% v" a I0 C+ }6 K( o0 b- EXIT_IF_NULL( process );3 h. l' F1 q; l, _! |
- }' R" t" Q! P* T! k8 A
- ; L4 }& p8 s, [$ r
- int ITK_user_main(int argc, char* argv[])# ?5 M7 X2 \' H0 U2 f! O) p
- {
: B; O8 F# P6 d. U4 C - int* D- y: N: [' W4 h% ?) z
- status = 0;
1 ]/ O: S3 V4 q: C: m9 w -
4 ]8 h- t% I% W1 [- w5 p0 z - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );1 k0 M+ Y+ E- W4 y/ ^" h. e
- status = ITK_auto_login();* a% d5 Y+ X- q
-
8 L7 t* L6 e C0 G0 m2 H3 [0 _& m - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
8 s: T3 I/ r3 B2 z4 v% e - else& S0 B0 m# l& A+ B2 f
- {0 [$ U. o% C, [/ g1 f) W7 i
- printf("\nLogin successful!\n\n");0 i' H' j" }9 ^' [# S; ?
- ITK_set_journalling(TRUE);
5 s! O3 w1 t3 h - do_it();) A/ z4 k k' k: T8 Y7 w
- }* y# o1 P$ ^* \$ n/ R
- ITK_exit_module(TRUE);
b& z6 S, S3 `# G" s - return status;
; {! T. ` c3 c8 J - }
复制代码
0 { N! h5 A/ T% d
) D6 C3 d" M/ z1 } p7 g
6 x/ ~6 Y" M: A: B |
|