|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
2 m! F) S3 g6 d, yTeamcenter ITK二次开发源码分享: 创建一个工作流
* d1 D& Z# O0 c8 ?1 e
: {$ N$ a& a, Y- /*HEAD CREATE_A_PROCESS CCC ITK */- f6 O3 ]; @( s" ~% s3 e$ S+ e
- #include <stdlib.h>+ Y6 @! D# P. h+ K @. p3 Z
- #include <TCcore/aom.h>5 y3 ^1 e) x! k* _3 V
- #include <tc/emh.h>. {* y. n2 U8 D3 ]3 w4 i: D6 U
- #include <epm/epm.h> N/ k- g+ V7 e( Q- B# A
- #include <tc/tc.h>. i* R" I+ D; y5 o, Y/ D( t
- #include <sa/tcfile.h>
4 n) b+ c! \( i9 h4 v" a- g - #include <itk/mem.h>
" E2 x- A* J7 c* C1 z
$ \; |1 r# D1 o2 X( W3 m0 |- #define EXIT_FAILURE 1
7 e7 ~% V5 z. e9 h* k3 F( V - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
5 c* P0 I) s, L4 C% t - static void report_error( char *file, int line, char *function, int return_code)% p" S6 H) s% S# i M# J; t
- {& \! q2 ] a0 }; a
- if (return_code != ITK_ok)
" l: j0 [' ]* y" U2 B, t - {* l% Z# m1 _5 P9 x: t5 V5 g
- char *error_message_string;
. S( M# \- ?* U8 P/ j& J - EMH_get_error_string (NULLTAG, return_code, &error_message_string);
6 O" \4 F o; I6 _' `: z - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
" G: d2 q5 Y: ~3 k5 T1 a& m5 s" c - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
: u9 f; g' W2 Y* `& z; E" [' E - if(error_message_string) MEM_free(error_message_string);- }0 n# b/ k/ x( W
- printf("\nExiting program!\n");& f. R, T: s3 _( m" V
- exit (EXIT_FAILURE); 0 T( Y3 |* Z) W( Y9 }7 E f2 p
- }& A5 X# H5 p4 B& h3 a3 b* e
- }/ ?) w! m& j5 f- Q( W& @1 N
( s: N) Y% W. p, U0 R" ~- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
7 C# r1 k7 ?7 U' q. Z/ J - static void check_value( char *function, int value ): y( P! L0 R* \0 u( B
- {$ I+ Y9 U! ~7 _2 @& i+ T3 U% `
- if (value == 0)
' }9 k# @3 c" `9 |( O! K3 ~1 p - {
0 a3 U1 H9 b @ - printf ("\t%s is NULL\n", function);5 a6 X& ~( e# V' D$ N
- printf("\nExiting program!\n");
% q- V$ U2 g2 A: A - exit (EXIT_FAILURE);
- U* k1 W1 ?6 r( h3 S1 j - }
0 @! p6 \3 A& |/ v( L, s - }( z4 | C6 ]+ Q# X& V6 f
0 O) G1 N9 k. J3 V- * r, `! P A* s P( J. d0 u9 t* o3 E
- static void do_it(void)
' b0 G3 Z4 B( |( V- V - {
0 o8 {4 H& j! \9 z9 r4 g9 r" V - int
* p4 g2 O, l _9 \! v* H - attach_types[1] = {1};
; d3 Z! J$ B8 Y! L0 [ - tag_t + w- F8 c. V9 O2 ~9 w. Z) h! }
- rev = NULLTAG,
% I% {! K, t1 w: M. R - process_template = NULLTAG,
( o+ x, i5 ?$ d1 E2 x - process = NULLTAG;0 i7 c# \7 ~, |4 Z! K/ i& b
1 k5 q" Y5 B W X" T ]- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
! d4 |9 _- P* j - EXIT_IF_NULL( rev );
; {- U- L* M5 I4 `" G5 t Z6 q
9 o1 s6 z# q" ~7 ?2 W0 \- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
9 Y9 ^0 ?( ^' R* q" b - EXIT_IF_NULL( process_template );
5 o" _9 n* z8 ]2 A) o; P. {; u
. A. Y8 P. h9 J1 Z" }* f, b( ?: }' P% d- & }, m. W. l5 c9 M2 x% X
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
: ?% Q# Q! F* d1 } - attach_types, &process) );8 }7 o. O0 g, {9 l4 N
6 `' {1 |- `6 z- b; s2 Z- EXIT_IF_NULL( process );
, K5 u$ V" \; o: a- M5 \6 j+ X - }3 u/ M( g$ m" }' p, A7 [$ p
2 u4 j, H7 E; v3 R- int ITK_user_main(int argc, char* argv[])# e( _' G2 ?! ]0 R4 }, k$ g6 W* I2 Z
- {; P9 D$ p0 ?# Y( ?5 c0 l' D
- int. B! u1 l) \1 P. \
- status = 0; * Q' ]( u6 r P6 O; p0 P! u
- 2 S" h5 m1 L9 S2 X* e' c
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );. k4 E& z6 d' J
- status = ITK_auto_login();
7 l, T: W G" g z - - o' O4 u2 K2 b; Z X. h
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");8 Y4 m& X/ |0 D' V* X' e2 w {) x
- else4 T: I4 I6 y* i- Y& q/ e
- {
: T! ^. q4 ]( D1 b5 ]- I - printf("\nLogin successful!\n\n");% T" b |; @6 o- H. P
- ITK_set_journalling(TRUE);
9 V# Q! ^% C8 j/ r) w - do_it();6 p w% z0 w6 V# B
- }
* N2 v: C+ L$ _1 v2 W - ITK_exit_module(TRUE);
8 M/ M/ \5 U7 r/ }. g - return status;
' ~2 A! \# y1 g - }
复制代码
" l4 v1 f4 P& S. K K
9 X0 z' ~" r0 X# C4 {7 U2 W2 w# N4 k6 t2 y& k; R/ E6 S
|
|